从Python套接字服务器接收字符串到Java套接字客户端
我正在制作一个Android应用程序(使用后台服务),它从Python服务器接收字符串。问题是Android服务只在通信中断时接收字符串 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
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方法在默认情况下解决了这个问题。