我试图在python服务器和java客户端(在android中)之间建立连接,这个想法是只有客户端将数据发送到服务器,服务器才会处理事情。然而,问题是第一次发送消息,服务器接收消息;然后,当我试图发送下一个消息时。服务器没有收到任何东西。
服务器很简单:这是一个最常见的:
server_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
server_socket.bind((HOST, PORT))
server_socket.listen(10)
client_socket, client_address = server_socket.accept()
print 'Connect with ' + client_address[0]
while check_if_directx_game():
data = client_socket.recv(1024).decode("UTF-8")
if 'SBA' in data:
PressKey(a)
if "PBA" in data:
ReleaseKey(a)
else:
print data
print "was here"
client_socket.close()
server_socket.close()
客户方:
public class SendMessage extends AsyncTask<String,Void,Void>{
private Exception exception;
@Override
protected Void doInBackground(String... params){
try {
try {
Socket socket = new Socket("192.168.1.178", 9000);
PrintWriter ToServer = new PrintWriter(new OutputStreamWriter(socket.getOutputStream()));
ToServer.print(params[0]);
ToServer.flush();
ToServer.close();
} catch (IOException e) {
e.printStackTrace();
}
} catch (Exception e) {
this.exception = e;
return null;
}
return null;
}}
我只接受客户端的SBA消息,但从未收到过之后发送的PBA。我在flush()之后关闭了PrintWriter;
P.S。 - 当我第一次在服务器中打印数据后,它只打印新行而不是“在这里”字符串
任何想法?