J'ai donc un simple serveur socket sur un émulateur android. Lorsque je n'envoie que des données, cela fonctionne très bien. Mais si je veux renvoyer ces données au script python, cela ne fonctionne pas du tout. Voici le code qui fonctionne:Réception python à partir d'une socket
android:
try {
serverSocket = new ServerSocket(port);
} catch (IOException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}
while (checkingForClients) {
try {
clientSocket = serverSocket.accept();
out = new PrintWriter(clientSocket.getOutputStream(), true);
in = new BufferedReader(new InputStreamReader(
clientSocket.getInputStream()));
line = null;
while ((line = in.readLine()) != null) {
Log.d("ServerActivity", line);
/* THIS IS THE LINE THAT DOESN'T WORK*/
//out.println(line);
handler.post(new Runnable() {
@Override
public void run() {
if(incomingData == null){
Log.e("Socket Thingey", "Null Error");
}
//out.println(line);
incomingData.setText("Testing");
incomingData.setText(line);
}
});
}
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
python:
import socket
host = 'localhost'
port = 5000
size = 1024
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
s.connect((host,port))
s.send('Hello, World!')
# data = s.recv(size) THIS LINE CAUSES PROBLEMS
s.close()
print 'Received:' , data
Donc, il y a deux lignes de commentaires. Sans ces lignes, cela fonctionne parfaitement. Mais si j'ajoute s.recv(size)
en python, il se fige et j'attends les données reçues. Mais le problème est que le code android n'obtient jamais les données envoyées. Donc je n'ai aucune idée de ce qu'il faut faire. Gardez à l'esprit que je suis nouveau sur python et sur les sockets.