sockets - 在 Luasocket 中,即使在 select 告诉它可以安全读取之后,在什么情况下 accept 调用也会阻塞?

标签 sockets lua luasocket

Luasocket select函数应该告诉何时可以无阻塞地读取套接字。它显然也可以用来判断服务器套接字何时准备好接受新连接,但是文档给出了以下警告:

Another important note: calling select with a server socket in the receive parameter before a call to accept does not guarantee accept will return immediately. Use the settimeout method or accept might block forever.

在什么情况下 accept 可以阻止即使 select 告诉它可以安全读取?出于测试目的,有没有办法强制出现此问题?

最佳答案

我不知道他们从哪里得到这个想法。从事网络编程20多年从未见过。

如果您有多个 select() 线程,当然会发生这种情况,但如果这是预期的,我希望文档会这么说。

关于sockets - 在 Luasocket 中,即使在 select 告诉它可以安全读取之后,在什么情况下 accept 调用也会阻塞?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16001896/

相关文章:

安卓蓝牙连接问题

ruby - 在 Redis 中为 Ruby 重新创建 zdiffstore

c++ - Lua项目编译出错(luabind)

c++ - 如何将 C++ 嵌套类注册到 Lua

c - lua中的简单加密

java - 100 个用户工作正常,对于 200 个,它给出 "javax.net.ssl.SSLHandshakeException"错误和 "Remote host closed connection during handshake"消息

java - 文件传输陷入 do while 循环

sockets - 如何检查 luasocket 库中的套接字是否关闭?

c++ - Android 到 Windows 的 tcp 通信延迟

sockets - Moai:通过套接字对命令使用react的图形