This call should return after only a very short time, but on some machines it inexplicably takes very close to 1 second. Has anyone seen this issue. I am using the loopback address so the network should be out of the picture.
问问题
1060 次
1 回答
0
问题可能出在窗口套接字实现内部的某个地方。从操作系统的角度来看,调用closesocket
(或CloseHandle
)相当于释放驱动程序的“设备”对象。大多数驱动程序会立即(同步)处理此请求,并在必要时中止所有(潜在的)未完成的 I/O。然而,“愚蠢”的驱动程序可能会阻止你,直到完成某些事情。
这就是我要做的:
- 尝试终止您的程序(通过任务管理器)。终止它需要时间吗?(如果是这样 - 似乎它已被驱动程序锁定)。
- 如果您正在谈论流套接字(即 TCP 或类似的) - 尝试使用
SO_DONTLINGER
选项。也就是说,指定您不想等到所有待处理的数据都发送到对等方。
于 2012-04-05T07:14:09.900 回答