我必须同时连接同一子网上的多个 ip。
买它花了我太长时间了! (将近 25 秒)等待所有“connect()
”函数完成!
如何在 winsock、CPP 中优化此行为?
我发现了一些叫做“select
”的东西,但实际上它只适用于 linux 所以..
最佳答案
select()
适用于 Unix、Linux、Windows、Netware 以及我测试过的所有其他平台。
- 将套接字置于非阻塞模式。
- 调用
connect()
。它将因 EAGAIN/EWOULDBLOCK 或 EINPROGRESS 而失败。 - 使用您想要的超时调用
select()
,并将套接字设置到writefds
中,即选择可写性。 - 当套接字变为可写时,它就连接上了。如果在您的超时期限内没有发生这种情况,请将其关闭,否则,如果您愿意,请将其重置为阻止模式并继续。
关于c++ - 如何在 C 套接字上将超时设置为 "connect()"函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42462932/