我正尝试让客户端向服务器发送请求并接收响应,同时保持连接。
如果我关闭套接字:
//server side
outToClient.writeBytes("Message to send");
connectionSocket.close();
//client side
serverResponse = inFromServer.readLine();
System.out.println("FROM SERVER: " + serverResponse);
客户端输出
来自服务器:要发送的消息
随后连接会被断开,显然。
如果我不关闭套接字:
//server side
outToClient.writeBytes("Message to send");
//client side
serverResponse = inFromServer.readLine();
System.out.println("FROM SERVER: " + serverResponse);
客户端没有输出。服务器没有发送消息或客户端没有接收到消息。
有人知道可能发生这种情况的原因吗? 客户端使用一个线程接收消息和一个线程发送消息。客户端套接字在主客户端线程中创建,因此接收器和发送器线程使用当前套接字进行通信。
提前感谢。
readLine
将等待换行符(或连接关闭,显然)。 - Some programmer dudereadLine
将阻塞直到接收到换行符或关闭连接。函数的名称应该给你一个提示。 - Some programmer dude