是否可以同时从套接字读取和写入?我尝试了双向客户端服务器通信...但问题是首先我将文件(字节)从客户端发送到服务器成功接收。但是当我响应时用于处理管道损坏错误的文件(发生套接字异常)
最佳答案
套接字是一个双向 channel 。这就是为什么两端都有一个输入和一个输出流。
如果出现损坏的管道异常,则意味着两侧(客户端或服务器)之一过早关闭了流。所以这取决于谁在提示。如果是服务器(听起来像您的问题),那么这意味着客户端写入了其消息,然后关闭了其一侧的所有内容。因此,当服务器尝试响应时,它并不存在。所以检查客户端。
为了帮助您,这里有一个非常基本的客户端/服务器实现示例:
请注意,客户端在准备好离开 while
循环并完全终止其执行之前,永远不会关闭任何内容。听起来这是你的问题。如果在这行 out.println("["+ screenName + "]: "+ s);
之后添加 out.close();
,您可能会得到与你得到的相同的异常。
关于java - java中的双向客户端服务器通信,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33012456/