|
|
前几天做了个TCP的C/S程序,老是出现客户端连接一段时后就出现连接丢失的问题,现在知道是XP对TCP/IP连接数量做了限制(XP默认最大连接为10),解决办法如下:
====补丁
http://www.lvllord.de/ 可以到这个网站下载补丁
补丁默认为50个连接,按C可以自定义!
从补丁的说明中看到好象2003也存在同样的问题!由于自己的英文不好所以只能猜了!哈哈!
====手动修改
在winxp中,在\windows\system32\drivers\tcpip.sys中,限制了系统的最大网络连接数量,
在网上查找到的资料中,都没有说清楚怎么进行修改,下面整理一下:
各个版本的tcpip.sys:
V2096 356,992字节 2004-03-12 01:11 am
V2149 359,424字节 2004-06-10 04:31 pm
V2162 360,320字节 2004-07-10 04:36 am
V2180 359,040字节 2004-08-03 11:14 pm (Official Final XP SP2 RTM Build)
v2096修改方法:
偏移0X130处 65 7D 05 00 改成 65 71 06 00
偏移0X4EAB7处 0A 00 00 00 改成 FE FF FF 00
v2149修改方法:
偏移0X130处 1C 3B 06 00 改成 10 3C 06 00
偏移0X4F4A2处 0A 00 00 00 改成 FE FF FF 00
v2162修改方法:
偏移0X130处 6D DD 05 00 改成 61 DE 05 00
偏移0X4F822处 0A 00 00 00 改成 FE FF FF 00
v2180修改方法:
偏移0X130处 6E 12 06 00 改成 62 13 06 00
偏移0X4F322处 0A 00 00 00 改成 FE FF FF 00
修改时要删除\WINDOWS\SYSTEM32\DLLCACHE\TCPIP.SYS
然后修改\WINDOWS\SYSTEM32\DRIVERS\TCPIP.SYS
看文件的大小和日期,来确定版本,进行相应的修改。
修改前要先备份,防止改后出现问题,系统起不来。
如果改后系统启动不了,这时可以进不起动网络支持的安全模式,用备份的TCPIP.SYS进行覆盖。
改动后,系统会提示系统文件被改动要求恢复,这个时候,点取消就可以了。
最后,还要在注册表放开限制:
该方法就是修改注册表中“HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSe
t\Services\Tcpip\Parameters”下的“TcpNumConnections”的键值。
DLLCACHE下的TCPIP.SYS用改过的文件覆盖也行,删除也行。
最好将 \WINDOWS\SERVICEPACKFILES\I386\TCPIP.SYS也覆盖一下
=======================================================================
别外如果你使用了如ADSL Route等设备也可能会有连接数量过小导致连接失败的问题!
这让我意识到在写网络程序之前需对所用网络设置有一个较详细的了解!
PS:TCPIP.SYS的最新補丁,就到SP2為止吧?這個文件如果出錯,會導致系統無法啟動。 |
|