【发布时间】:2018-03-19 05:13:11
【问题描述】:
我有一个 java.net.ServerSocket 用于监听连接。我正在使用它的accept() 方法来获取来自客户端的连接,然后适当地处理它们。我希望持续倾听客户的声音,并且永远无法与他们联系。目前我有类似这样的代码:
ServerSocket serverSocket = ...
while (shouldBeListening) {
handleClient(serverSocket.accept());
}
handleClient 方法可能需要很短的时间(不到十分之一毫秒)。我担心在ServerSocket.accept() 方法返回和再次调用它之间,可能会错过连接请求。解决此问题的最佳方法是什么?
编辑:
我实现它的方式目前在handleClient 方法中创建了一个新线程,但即使这需要时间(特别是因为这是在Raspberry Pi 上运行的),我担心如果在@987654329 时请求连接@ 方法正在执行,那么它可能会被拒绝,因为 accept() 没有被运行。
【问题讨论】:
标签: java network-programming serversocket