日期:2014-05-17  浏览次数:20907 次

由于系统缓冲区空间不足或者队列已满,不能进行套接字上的操作
本人用c#上开发了个 NVR 系统,运行在2003 server r2上,要建立大量的链接,但系统现在试运行有17只摄像头,每个摄像头2个连接,有些断了要重试链接。系统大概运行8天就退出,再运行就发现“由于系统缓冲区空间不足或者队列已满,不能进行套接字上的操作 ”,运行iE浏览器都不行。必须重启电脑后才正常
  链接断了程序都会主动关闭。平时也看不到积累很多半链接,内存观察也没增加,哪位高手帮忙解决下,本人愿把全部积分200分奉上。

------解决方案--------------------
1、程序资源复用和释放。
2、增加最大连接数。
reg add HKLM\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters /v MaxUserPort /t REG_DWORD /d 65534 /f
3、设置连接超时为1分钟。
reg add HKLM\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters /v TcpTimedWaitDelay /t REG_DWORD /d 60 /f