学习了两个多月的MFC了,目前还是举步为艰,解决很小的问题都要很长的时间。现在正在学习网络编程(及其初级的)。前些天在“中国制造”的帮助下,弄清楚了一些服务器端的一些东西,目前就告一段落了,现在正在想办法解决客户端的问题。问题如下:当客户端与服务器断开用了CLOSE(),那么想再CONNECT就要等4分钟的时间。问题!!******那么有没有办法能使客户端在断开后能马上CONNECT的方法呢?我在程序里用 delete m_sockcli;
m_sockcli = NULL;,可是还是不行。我用别人的程序测试,服务器没有问题,那么问题就集中在客户端了!请大家帮我看看,给我些指点把!不胜感激!!!
m_sockcli = NULL;,可是还是不行。我用别人的程序测试,服务器没有问题,那么问题就集中在客户端了!请大家帮我看看,给我些指点把!不胜感激!!!
int nReuseOn=1, setsockopt(sock, SOL_SOCKET, SO_REUSEADDR, (char *)&nReuseOn, sizeof(nReuseOn));
5分钟以后应该是服务器没有收到客户端的响应,超时断开了。
当然这只是我的怀疑,你可以在客户端关闭之后,马上用命令行netstat -o -a看看你的端口有没有被释放,是不是真的和服务器断开了。
{
m_sockcli->CancelBlockingCall();//加这个试试看
delete m_sockcli;
m_sockcli = NULL;
// m_connect.EnableWindow(TRUE);
m_disconnect.EnableWindow(FALSE);
// TODO: Add your control notification handler code here
}void CHLXSocket::OnClose(int nErrorCode)
{
// TODO: Add your specialized code here and/or call the base class
CMycliDlg *pDlg =(CMycliDlg*) AfxGetApp()->GetMainWnd ();
pDlg->m_msglist.InsertItem (0,"server closed"); //pDlg->OnDisconnect();//这句删了!
CSocket::OnClose(nErrorCode);
}
http://www.hlxinformation.com.cn/mysvr.rar
http://www.hlxinformation.com.cn/mycli.rar请大家帮忙呀!!我一共有190分,一定一分不留,全都给大家!!
发油箱:[email protected]
http://www.hlxinformation.com.cn/mycli.rar请大家帮忙呀!!我一共有190分,一定一分不留,全都给大家!!
发油箱:[email protected]
同意kingzai() 的。^_^
用在产品代码中肯定不行,最终还是用API;
你最好向:
释放套结字句柄Closesocket(),在连接之前重建clientsocket = Socket(...), 然后再connect
怎么会连接不上?
你没必要一直在一个sokcet上连接,重新建立一个不是得了?
??
呵呵~~
这个“马上” 指多少时间啊??
呵呵~~断了 再连
服务端 要接受 你的链接啊 他要想:)呵呵~~
除非你是假 “离婚” :)