首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >某些计算机上的WinSock closesocket()调用需要一秒时间

某些计算机上的WinSock closesocket()调用需要一秒时间
EN

Stack Overflow用户
提问于 2012-04-05 06:06:57
回答 1查看 1.1K关注 0票数 3

这个调用应该在很短的时间内返回,但是在某些机器上,它会花费非常接近1秒的时间。有没有人见过这个问题。我正在使用回环地址,所以网络应该不在画面之外。

EN

回答 1

Stack Overflow用户

发布于 2012-04-05 07:14:09

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

我会这么做的:

  • 试图终止您的程序(按任务管理器)。终止它需要时间吗?(如果是这样的话--似乎是被驱动程序锁定了)。如果您在谈论流套接字(即TCP或类似的),请使用
  • --尝试使用SO_DONTLINGER选项。也就是说,指定您不希望等到所有挂起的数据都被发送到对等方。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/10023430

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档