此调用应在很短的时间后返回,但在某些机器上,它莫名其妙地需要非常接近1秒。有没有人见过这个问题。我正在使用环回地址,因此网络应该不合适。
答案 0 :(得分:0)
问题可能出在窗口套接字实现中。从操作系统的角度来看,调用closesocket
(或CloseHandle
)相当于释放驱动程序的“设备”对象。大多数驱动程序立即(同步)处理此请求,必要时中止所有(潜在的)未完成的I / O.然而,“愚蠢”的驱动程序可能阻止你,直到某事完成。
这就是我要做的事情:
SO_DONTLINGER
选项。也就是说,指定您不想等到所有待处理数据都发送给对等方。