如何模拟来自非阻塞客户端的连接以遇到EINPROGRESS错误?
我该如何从服务器上将此类错误返回给客户端(即,调整一些tcp计时器,原始套接字服务器等。)

最佳答案

当连接到localhost时,TCP总是立即连接,因此connect()不返回EINPROGRESS

您可以通过“假装” connect()返回EINPROGRESS并等待直到客户端套接字准备好写操作(就像在EINPROGRESS之后连接一样),在客户端中进行模拟。实际上,某些库只针对非阻塞connect()这样做,以避免两个不同的代码路径进行立即连接和慢速连接。

10-08 13:12