在我编写的应用程序运行一段时间后,所有TCP通信都停止工作(无法创建新的套接字)。创建新套接字导致“无法执行套接字上的操作,因为系统缺少足够的缓冲区空间或因为队列已满”错误。
我在互联网上看到,似乎我导致Windows使用所有“短暂”端口,但是当我使用“netstat -a”检查时,我看不到打开套接字的“笨拙”。
该应用程序是TCP客户端/服务器。
我一直在努力思考可能导致这个问题的原因,但我真的被卡住了...... 任何人的帮助?
谢谢!
答案 0 :(得分:0)
临时端口几乎没有限制:一次只能有4000个从客户端计算机到远程服务的唯一连接(TIME_WAIT)。 TIME_WAIT通常配置为240秒。 你每240秒只能有4000个连接。
答案 1 :(得分:0)
您可能已用完所有套接字缓冲区空间。你在使用大型套接字缓冲区吗?