我有一个用Java编写的TCP服务器和一个用Python编写的客户机。python客户机只发送10个包,每次发送之间等待2秒。然而,在python脚本终止之前,java服务器似乎不会识别这些包,在这个脚本中,它最终接收到所有消息,就好像它们是同时进来的一样。我观察了wireshark并验证了客户端是否正确地发送了所有包。在ServerSocket serverSocket = new ServerSocket(6789);
Socket clientSocket = null;
System.out.println ("Waiting for connection.....");
try {
clientSocket = serverSocket.accept();
}
catch (IOException e) {
System.err.println("Accept failed.");
System.exit(1);
}
System.out.println ("Connection successful");
System.out.println ("Waiting for input.....");
String data;
PrintWriter out = new PrintWriter(clientSocket.getOutputStream(), true);
BufferedReader in = new BufferedReader(
new InputStreamReader(clientSocket.getInputStream()));
while ((data = in.readLine()) != null) {
System.out.println ("Server: " + data);
}
Python代码:
导入套接字
导入时间
^{pr2}$
我看到的输出:Connection successful
Waiting for input.....
Server: Packet: #: 0Packet: #: 1Packet: #: 2Packet: #: 3Packet: #: 4Packet: #: 5Packet: #: 6Packet: #: 7Packet: #: 8Packet: #: 9