一个怪异的服务器问题

最近帮一个朋友测试服务器,其中一个测试项目是每次传送数据后立刻断开连接。然而测试开始没几 分钟,客户端就报告了大量的错误,错误原因是 only one usage of each socket address (protocol/network address/port) is normally permitted”. 用 netstat 查看客户端的连接情况,发现有大量的状态为 TIME_WAIT 的连接存在。Google 以后确定 原因在于 TCP 会在关闭 Socket 之后继续占用端口一段时间,在这段时间内,如果要创建新的连接, Socket 会分配一个新端口给它。 这取决于两个注册表值,都是位于这个键下: HKLM/SYSTEM/CurrentControlSet/Services/Tcpip/Parameters TcpTimedWaitDelay 表示关闭 Socket 后占用端口的秒数,默认是240 MaxUserPort 表示最大的可用端口,默认是 5000 如果发送请求的速度是 300/秒,那么5000个端口(实际上还要扣掉1024个保留端口)只能用14秒左右 ,从第15秒开始就没有可用端口,因此 WinSock 就要报错了。 推荐的修改值为 TcpTimedWaitDelay = 30 MaxUserPort = 65534

 转:http://www.cpper.com/site/comments/tcp_time_delay/
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值