【发布时间】:2015-05-15 08:58:51
【问题描述】:
这个问题很笼统,虽然我的简单程序是用 Java 编写的。它涉及 TCP/IP 连接。
我需要的是服务器套接字在建立客户端连接后尽快关闭。我一次最多需要一个客户端,并且我不希望其他人能够连接。
我注意到,如果我关闭服务器套接字,我仍然可以使用客户端套接字,但没有人在监听进一步的连接。其实这对我来说完全没问题,但我不确定这种方法是否存在一些隐患。
你怎么看?
【问题讨论】:
这个问题很笼统,虽然我的简单程序是用 Java 编写的。它涉及 TCP/IP 连接。
我需要的是服务器套接字在建立客户端连接后尽快关闭。我一次最多需要一个客户端,并且我不希望其他人能够连接。
我注意到,如果我关闭服务器套接字,我仍然可以使用客户端套接字,但没有人在监听进一步的连接。其实这对我来说完全没问题,但我不确定这种方法是否存在一些隐患。
你怎么看?
【问题讨论】:
我可以在接受客户端套接字并建立连接后关闭服务器套接字吗?
是的。监听套接字和接受套接字是完全独立的。
但是,在接受循环中执行所有客户端处理代码然后返回接受可能更有意义,而不是按照惯例为每个客户端启动一个新线程。这样,更多的客户端可以连接,但在第一个客户端完成之前他们不会获得任何服务。因此,您不必在客户端中编写重试代码。
【讨论】: