gpt4 book ai didi

java - 聊天服务器写入关闭的套接字

转载 作者:行者123 更新时间:2023-12-01 04:59:19 24 4
gpt4 key购买 nike

本质上,我有一个服务器类和一个客户端类,客户端创建一个套接字并将您输入的任何内容发送到服务器中,该服务器会写入来自所有现有客户端的套接字 vector 的输出流。它运行良好,除非您关闭聊天客户端,之后发送的下一条消息会出现以下异常:

java.net.SocketException: Software caused connection abort: socket write error

我认为发生的情况是客户端关闭的套接字要么没有关闭服务器套接字 vector 中的套接字,要么即使关闭了它,它仍然保留在 vector 中,然后尝试写入已关闭的套接字。这听起来像是可能发生的事情吗?我不明白 socket.close() 方法对于它所连接的套接字的作用。

最佳答案

您在客户端关闭了套接字,但在服务器端它并未关闭,这就是您收到此异常的原因。

在正常关闭中,您应该从客户端发送一条 CLOSE 消息,这将关闭服务器端的套接字。

如果客户端上的套接字已关闭,那么您必须在服务器端处理异常,例如通过将其从套接字 vector 中删除。

关于java - 聊天服务器写入关闭的套接字,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13594397/

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