当所有Windows应用程序尝试使用TCP套接字时,我的应用程序会导致错误 - 获取"套接字上的操作无法执行,因为..." (0x2747)错误

时间:2011-11-17 13:07:38

标签: c++ windows networking tcp

在我编写的应用程序运行一段时间后,所有TCP通信都停止工作(无法创建新的套接字)。创建新套接字导致“无法执行套接字上的操作,因为系统缺少足够的缓冲区空间或因为队列已满”错误。

我在互联网上看到,似乎我导致Windows使用所有“短暂”端口,但是当我使用“netstat -a”检查时,我看不到打开套接字的“笨拙”。

该应用程序是TCP客户端/服务器。

我一直在努力思考可能导致这个问题的原因,但我真的被卡住了...... 任何人的帮助?

谢谢!

2 个答案:

答案 0 :(得分:0)

临时端口几乎没有限制:一次只能有4000个从客户端计算机到远程服务的唯一连接(TIME_WAIT)。 TIME_WAIT通常配置为240秒。 你每240秒只能有4000个连接。

答案 1 :(得分:0)

您可能已用完所有套接字缓冲区空间。你在使用大型套接字缓冲区吗?