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

标签 java sockets tcp

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

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

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

你怎么看?

最佳答案

Can I close the ServerSocket after accepting a client socket and establishing a connection?

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

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

关于java - 我可以在接受客户端套接字并建立连接后关闭 ServerSocket 吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29022730/

相关文章:

javascript - Node.js 服务器上的 ECONNRESET 错误有何影响(如果有)?

java - 服务层中的验证(Spring Boot)

java - 为什么这段代码不读取我的文件?

Java:object.hashCode() 和 Objects.hashCode(object)

java - Instant Messenger,Java 基础项目

c# - 如何使用 SuperWebSocket 创建 WebSocket 服务器

c++ - 套接字服务器针对某些请求返回 tcp 错误 [RST, ACK]

java - iText 7 : Set text field once even if it exists multiple times with the same name

c - 如何清除linux中的socket缓冲区

c++ - 帮助我开始(流量操纵)