gpt4 book ai didi

c++ - WinSock closesocket() 调用在某些计算机上需要一秒钟

转载 作者:可可西里 更新时间:2023-11-01 09:38:38 25 4
gpt4 key购买 nike

这个调用应该在很短的时间后返回,但在某些机器上它莫名其妙地花费了接近 1 秒的时间。有没有人看到这个问题。我正在使用环回地址,因此网络应该不在画面中。

最佳答案

问题可能出在窗口套接字实现的某个地方。从操作系统的角度来看,调用 closesocket(或 CloseHandle)等同于释放驱动程序的“设备”对象。大多数情况下,驱动程序会立即(同步)处理此请求,并在必要时中止所有(潜在的)未完成的 I/O。然而,“愚蠢”的驱动程序可能会阻止您,直到某事完成。

这就是我要做的:

  • 尝试终止您的程序(通过任务管理器)。终止它需要时间吗? (如果是这样 - 似乎它被司机锁住了)。
  • 如果您谈论的是流套接字(即 TCP 或类似的)- 尝试使用 SO_DONTLINGER 选项。也就是说,指定您不想等到所有待处理数据都发送到对等方。

关于c++ - WinSock closesocket() 调用在某些计算机上需要一秒钟,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10023430/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com