从Python套接字服务器接收字符串到Java套接字客户端

从Python套接字服务器接收字符串到Java套接字客户端,java,android,python,sockets,serversocket,Java,Android,Python,Sockets,Serversocket,我正在制作一个Android应用程序(使用后台服务),它从Python服务器接收字符串。问题是Android服务只在通信中断时接收字符串 Java代码 public class Receiver implements Runnable { private Client client; private Socket socket; private Thread receiver; private BufferedReader br; public Rec

我正在制作一个Android应用程序(使用后台服务),它从Python服务器接收字符串。问题是Android服务只在通信中断时接收字符串

Java代码

public class Receiver implements Runnable {

    private Client client;
    private Socket socket;
    private Thread receiver;
    private BufferedReader br;

    public Receiver(Socket socket, Client client) {
        this.socket =socket;
        this.client = client;
    }

    @Override
    public void run() {
        receiver = Thread.currentThread();
        try {
            br = new BufferedReader(new InputStreamReader(socket.getInputStream()));
            while(!receiver.isInterrupted()){
                String command = br.readLine();
                System.out.println("Command Received: "+command);
                client.parseCommand(command);
            }
        } catch (Exception e) {
            receiver.interrupt();
            try {
                br.close();
            } catch (IOException e1) {
                e1.printStackTrace();
            }
            new Thread(new ConnectionController()).start();
        }

    }
}
def send_command(self,command):
        self.currentClient[1].send(command.encode())
我也尝试过使用DataInputStream,但如果我使用它,Android服务永远不会收到字符串

Python代码

public class Receiver implements Runnable {

    private Client client;
    private Socket socket;
    private Thread receiver;
    private BufferedReader br;

    public Receiver(Socket socket, Client client) {
        this.socket =socket;
        this.client = client;
    }

    @Override
    public void run() {
        receiver = Thread.currentThread();
        try {
            br = new BufferedReader(new InputStreamReader(socket.getInputStream()));
            while(!receiver.isInterrupted()){
                String command = br.readLine();
                System.out.println("Command Received: "+command);
                client.parseCommand(command);
            }
        } catch (Exception e) {
            receiver.interrupt();
            try {
                br.close();
            } catch (IOException e1) {
                e1.printStackTrace();
            }
            new Thread(new ConnectionController()).start();
        }

    }
}
def send_command(self,command):
        self.currentClient[1].send(command.encode())

我使用此方法发送命令字符串。

您使用的是
BufferedReader.readLine()
。从python发送的命令是否包含一个行尾字符?谢谢,它成功了,我认为python套接字的send方法在默认情况下解决了这个问题。