重启程序没有效果,只有重启机器才行。
解决方案 »
- 谁有《windows多媒体编程基础》电子书的啊!
- 怎么获得标量函数的值?比如MIN函数,谢谢。
- 我快疯了 帮帮我吧 CListCtrl显示数据库数据的问题
- ADO 中Find函数的查找问题!!!!!!!!!!
- 加入h文件
- 这种delphi形式怎么变成vc
- 用ADO怎么把SELECT COUNT(*) FROM TABLE中的值取出来!
- 如何在程序中调用其它程序(如IE)打开一个FTP联接下载文件??
- mfc中如何在不同对象之间传递消息?
- 第一个解决我问题的人得全部加分,我每次提问都是给了分的!(两个问题)
- 如何使List control中选中的行不消失??
- 关于运算符+重载后的隐含类型转换问题
你是说等过了TcpTimedWaitDelay时间再连接就可以?
如果没有调用closesocket,那么重启程序就可以了,程序退出后,系统会自动释放的。
估摸着太多资源被占用.你可以在程序无法向外连接时打开IE访问网站,如果一样无法访问的话,那肯定是太多资源被占用,系统无法腾出资源去建立socket句柄.
如下
char *chBUF = new char[20];int ret = recv(sock,chbuf,20,0); ->这边堵塞了,你关了你的程序没删除内存if(ret == SOCKET_ERROR)
{
return ->这边返回了,没删除
}opt;..
delete chbuf
主动关闭后,由于timewait,会在1--4分钟内,连接不上客户说连接不上,是一直连接不上?还是连不上就重起了?
进程结束后,系统资源是不会自动释放的
client采用的是系统分配的端口,应该不需要端口重用。这个client本身是一个服务程序,所以客户不会一直等下去,他们尝试连不上就重启了。
这个现象不是经常出现,只是有时出现。
一般情况下,关闭程序再启动都很正常。
进程结束后,系统资源是不会自动释放的
说得有道理。
其实我也怀疑是TIME_WAIT的缘故。但这是不是需要短时间大量的主动关闭动作才会引发所有的socket都处于TIME_WAIT状态啊?
[code=INIFile][HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters]
"MaxUserPort"=dword:0000fffe
"TcpTimedWaitDelay"=dword:00000005[/code]
是修改系统动态分配最大端口号吗?
"TcpTimedWaitDelay"=dword:00000005
等待时间是5秒还是5毫秒?