如何模拟来自非阻塞客户端的连接以遇到 EINPROGRESS 错误? 我可以从服务器做什么来将此类错误返回给客户端(即调整一些 tcp 计时器、原始套接字服务器等)
最佳答案
当连接到本地主机时,TCP 总是立即连接,因此 connect()
不返回 EINPROGRESS
.
您可以通过“假装”connect()
在客户端中模拟它返回 EINPROGRESS
并等待客户端套接字准备好写入(就像在 EINPROGRESS
之后连接一样)。事实上,一些图书馆就是为非阻塞做的 connect()
避免立即连接和慢速连接使用两种不同的代码路径。
关于linux - TCP : Simulate EINPROGRESS from server side (linux),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10228799/