我试图在python服务器和Java客户端(在Android中)之间 Build 连接,这个想法是只有客户端才能将数据发送到服务器,服务器将处理事情 . 然而,问题是第一次发送消息,服务器接收消息;然后,当我试图发送下一个消息时 . 服务器没有收到任何东西 .

服务器非常简单:这是一个片段:

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;

附: - 当我第一次在服务器中打印数据后,它只打印新行而不是“在这里”字符串

有任何想法吗 ?