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

时间:2015-03-13 00:20:43

标签: java sockets tcp-ip

问题是一般性的,尽管我的简单程序是用Java编写的。它涉及TCP / IP连接。

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

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

您怎么看?

1 个答案:

答案 0 :(得分:4)

  

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

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

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