接受客户端套接字并建立连接后,我可以关闭 ServerSocket 吗?

Boy*_*yan 2 java sockets tcp-ip

这个问题很笼统,尽管我的简单程序是用 Java 编写的。它涉及 TCP/IP 连接。

我需要的是在建立客户端连接后尽快关闭服务器套接字。我一次最多需要一个客户端,我不希望其他人能够连接。

我注意到如果我关闭服务器套接字,我仍然可以使用客户端套接字,但没有人在监听进一步的连接。其实这对我来说完全没问题,但我不确定这种方法是否存在一些隐患。

你怎么认为?

use*_*421 5

接受客户端套接字并建立连接后,我可以关闭 ServerSocket 吗?

是的。监听套接字和接受套接字是完全独立的。

然而,在接受循环中执行所有客户端处理代码然后返回接受循环可能更有意义,而不是按照惯例为每个客户端启动一个新线程。这样,更多的客户端可以连接,但在第一个客户端完成之前他们不会获得任何服务。因此,您不必将重试编码到客户端。

  • 没有相反的文档、一些内部知识、对协议的理解和 25 年的经验。 (2认同)