gpt4 book ai didi

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

转载 作者:可可西里 更新时间:2023-11-01 02:33:17 25 4
gpt4 key购买 nike

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

如果我关闭套接字:

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

//client side
serverResponse = inFromServer.readLine();
System.out.println("FROM SERVER: " + serverResponse);

客户端输出

FROM SERVER: Message to send

显然,之后连接就断开了。

如果我不关闭套接字:

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

//client side
serverResponse = inFromServer.readLine();
System.out.println("FROM SERVER: " + serverResponse);

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

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

提前致谢。

最佳答案

如果客户端希望读取一行,服务器应该写一行。一行以 \n 字符结束。

可能还需要刷新您用于向客户端发送数据的流:

outToClient.writeBytes("Message to send\n");
outToClient.flush();

如果没有看到代码,很难说是否需要刷新。

关于java - TCP 连接 - 服务器仅在关闭套接字后发送消息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26892717/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com