如何察看当前服务器上的time_wait sock的多少

netstat -n |awk '{print $6}' |sort |uniq -c |sort -rn

如何delete服务器段用来Accept(SOCK)里面的SOCK

10-26

在服务器端:我在ONACCETP的时候创建了一个SOCKET,当响应ONCLOSE事件是,要删除刚才创建的SOCKET,为了释放资源,准备下一次的接收。rn问题:rn1.是否有必要删除,不删除它我是否响应下一次的connect?rn2.要是不删除他,当客户端CLOSE套接子后,再去CONNECT后会连接不上,要等上大约3分钟才可以再次连接,这是为什么呀?rnrn求大家帮忙了!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!rnrn部分代码如下:rnSERVER端的:rnvoid CMySvr::OnAccept(int nErrorCode) rnrn CSvrDlg *dlg =(CSvrDlg*) AfxGetApp()->GetMainWnd ();rnrn m_pSockConn = new CMySvr(); //CMYSVR是一个CSOCKET定义的类rn UINT nPort_Client;rn CString strIP_Client;rn if (Accept(*m_pSockConn))rn rn m_pSockConn ->GetPeerName(strIP_Client,nPort_Client); rn //get the connection's ip and portrn dlg ->m_list.InsertItem (0,strIP_Client); //显示客户的IP地址rn rn elsern delete m_pSockConn;rn return;rn rn CSocket::OnAccept(nErrorCode);rnrnrnrnvoid CMySvr::OnClose(int nErrorCode) rnrn CSvrDlg *dlg =(CSvrDlg*) AfxGetApp()->GetMainWnd ();rn dlg ->m_list.InsertItem (0,"client closed");rnrn// m_pSockConn ->Close(); //我想在这里把它删掉,可是不行,会出错rn// delete m_pSockConn ;rn rn CSocket::OnClose(nErrorCode);rnrnrn客户端部分代码:rnvoid CMycliDlg::ConnectSvr() rnrn m_sockcli = new CHLXSocket();rnrn char strIpaddr[20];rn m_ipaddr.GetWindowText (strIpaddr, 19);rnrn // to Create a socketrn UINT nport =50001;rn if (m_sockcli ->Init(nport))rn m_msglist.InsertItem (0,"Create Successful");rnrn // to connect the serverrn if( m_sockcli ->Connect (strIpaddr,50000))rn rn m_msglist.InsertItem (0,"Connect Successful");rn rn else rn rn m_msglist.InsertItem (0,"Connect False");rn OnDisconnect ();rn rnrnrnrnvoid CMycliDlg::OnDisconnect() rnrn m_sockcli ->Close ();rn delete m_sockcli;rnrnrn

没有更多推荐了,返回首页

私密
私密原因:
请选择设置私密原因
  • 广告
  • 抄袭
  • 版权
  • 政治
  • 色情
  • 无意义
  • 其他
其他原因:
120
出错啦
系统繁忙,请稍后再试