So I have a simple socket server on an android emulator. When I'm only sending data to it, it works just fine. But then if I want to echo that data back to the python script, it doesn't work at all. Here's the code that works:
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



So there are 2 commented lines. Without those lines, it works perfectly. But if I add in s.recv(size) in python it just freezes and I assume waits for the received data. But the problem is that the android code never gets the sent data. So I have no idea what to do.
Keep in mind I'm new to python and to sockets.
The Android code is reading lines, so you need probably to send a \n or possibly \r\n at the end of your Python send string.
python receiving from a socket