关于CSOCKET的问题的请教

coolmei25 2004-11-09 01:45:06
学习了两个多月的MFC了,目前还是举步为艰,解决很小的问题都要很长的时间。现在正在学习网络编程(及其初级的)。前些天在“中国制造”的帮助下,弄清楚了一些服务器端的一些东西,目前就告一段落了,现在正在想办法解决客户端的问题。

问题如下:当客户端与服务器断开用了CLOSE(),那么想再CONNECT就要等4分钟的时间。

问题!!******那么有没有办法能使客户端在断开后能马上CONNECT的方法呢?

我在程序里用 delete m_sockcli;
m_sockcli = NULL;,可是还是不行。

我用别人的程序测试,服务器没有问题,那么问题就集中在客户端了!请大家帮我看看,给我些指点把!不胜感激!!!
...全文
184 25 打赏 收藏 转发到动态 举报
写回复
用AI写文章
25 条回复
切换为时间正序
请发表友善的回复…
发表回复
coolmei25 2004-11-10
  • 打赏
  • 举报
回复
对不起大家,最多只能给100分,我再开一个问题,大家回帖给分!
coolmei25 2004-11-10
  • 打赏
  • 举报
回复
现在可以结帖了!!多谢大家的帮助,尤其谢谢PiggyXP(【小猪】、: gdy119(中国制造) 、 konista、wwwllg的帮助和批评!

由于现在是学习阶段,更多的注意力放在了功能实现上,那么现在功能已经基本实现了,我接下来准备按照PiggyXP老师给指的方向,放弃用CSOCKET了,改用SOCKET的API了,我在网上也看到了PiggyXP(【小猪】老师的关于《重叠模型的基础知识》,这就开始潜心研究。遇到了问题还请诸位老师顶力相助。

我想到了用CSOCKET解决我的问题的方法了:就是换一个端口号去连接,呵呵,原来那个就不管它了。
vicky_jam 2004-11-09
  • 打赏
  • 举报
回复
“那么有没有办法能使客户端在断开后能马上CONNECT的方法呢?”
??
呵呵~~
这个“马上” 指多少时间啊??
呵呵~~

断了 再连
服务端 要接受 你的链接啊 他要想:)

呵呵~~
除非你是假 “离婚” :)
linxy2002 2004-11-09
  • 打赏
  • 举报
回复
楼主好荣幸,这么多高手帮你
PiggyXP 2004-11-09
  • 打赏
  • 举报
回复
如果不绑定端口,系统会随机为你的连接socket分配一个端口,这样就不会出现类似的问题了
PiggyXP 2004-11-09
  • 打赏
  • 举报
回复
楼主在发送端也同样绑定了端口,那是有这样的问题的,你可以试试kingzai说的重用端口的办法

其实既然你的客户端没有监听作用,那么客户端就直接可以不用绑定端口了:)
gdy119 2004-11-09
  • 打赏
  • 举报
回复
其实你先用CSocket 写程序只能写来玩玩,要是真的
用在产品代码中肯定不行,最终还是用API;
你最好向:
释放套结字句柄Closesocket(),在连接之前重建clientsocket = Socket(...), 然后再connect
怎么会连接不上?
你没必要一直在一个sokcet上连接,重新建立一个不是得了?



guodong_77 2004-11-09
  • 打赏
  • 举报
回复
我以前也看过类似的撒,不过不是四分钟,比这短一点,解决方法就是地址重用啊。
同意kingzai() 的。^_^
joinrry 2004-11-09
  • 打赏
  • 举报
回复
可能没调用Closesocket()释放套接字哦,
PiggyXP 2004-11-09
  • 打赏
  • 举报
回复
TO coolmei25(梅生)

我很想帮你修改代码的,可是下载了你客户端的代码一看了半天。。。。。。。-_-b

我个人觉得这样的代码,即使修改好了正常工作了也没什么意思,因为我觉得代码的整个结构比较糟糕,如果你以后就沿着这个方向走下去的话是不大好的。。。。。你要是真的想学的话,我可以一步一步的教你,如果有兴趣的话就给我发消息

尽量不要去用CSocket,更不要从CSocket来继承,就直接用socket的api来写就好了,结构更清晰也更容易理解



coolmei25 2004-11-09
  • 打赏
  • 举报
回复
http://www.hlxinformation.com.cn/mysvr.rar
http://www.hlxinformation.com.cn/mycli.rar

请大家帮忙呀!!我一共有190分,一定一分不留,全都给大家!!
发油箱:coolmei25@sina.com
coolmei25 2004-11-09
  • 打赏
  • 举报
回复
给个实例把!!
baoxue10181018 2004-11-09
  • 打赏
  • 举报
回复
释放套结字句柄Closesocket(),在连接之前重建clientsocket = Socket(...), 然后再connect
coolmei25 2004-11-09
  • 打赏
  • 举报
回复
http://www.hlxinformation.com.cn/mysvr.rar
http://www.hlxinformation.com.cn/mycli.rar

请大家帮忙呀!!我一共有190分,一定一分不留,全都给大家!!
发油箱:coolmei25@sina.com
UDX协议 2004-11-09
  • 打赏
  • 举报
回复
http://www.vczx.com/article/show.php?id=790
coolmei25 2004-11-09
  • 打赏
  • 举报
回复
我把服务器端程序也贴上了,多谢大家批评指教!问题解决了,我把全部分数奉献给大家!
http://www.hlxinformation.com.cn/mysvr.rar
konista 2004-11-09
  • 打赏
  • 举报
回复
你的代码,真是,从内容到形式,我完全看不惯,建议看看编程规范,然后扔掉CSocket!
konista 2004-11-09
  • 打赏
  • 举报
回复
void CMycliDlg::OnDisconnect()
{
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);
}
coolmei25 2004-11-09
  • 打赏
  • 举报
回复
请大家帮帮我把!!改完后请发给我:coolmei25@sina.com
coolmei25 2004-11-09
  • 打赏
  • 举报
回复
我的源程序!:http://www.hlxinformation.com.cn/mycli.rar
加载更多回复(5)

18,357

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 网络编程
c++c语言开发语言 技术论坛(原bbs)
社区管理员
  • 网络编程
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧