小编Iva*_*ire的帖子

TCP连接 - 服务器仅在关闭套接字后发送消息

我试图让客户端向服务器发送请求并在保持连接的同时收到响应.

如果我关闭套接字:

//server side
outToClient.writeBytes("Message to send");
connectionSocket.close();

//client side
serverResponse = inFromServer.readLine(); 
System.out.println("FROM SERVER: " + serverResponse);
Run Code Online (Sandbox Code Playgroud)

客户端输出

FROM SERVER:要发送的消息

之后,显然连接丢失了.

如果我不关闭套接字:

//server side
outToClient.writeBytes("Message to send");

//client side
serverResponse = inFromServer.readLine(); 
System.out.println("FROM SERVER: " + serverResponse);
Run Code Online (Sandbox Code Playgroud)

客户端没有输出.服务器从不发送消息,或者客户端从未接收消息.

有人知道这可能发生的原因吗?客户端使用线程来接收消息,使用线程来发送消息.客户端套接字在主客户端线程中创建,因此接收方和发送方线程使用当前套接字进行通信.

提前致谢.

java sockets multithreading tcp

3
推荐指数
1
解决办法
5172
查看次数

标签 统计

java ×1

multithreading ×1

sockets ×1

tcp ×1