高分请教同步套接字断开重连的问题

jjiaming 2005-08-14 04:15:33
RT,小弟的方法是用delete ,然后再new ,再Create,但是在Create时就遇到了问题,于是发了狠,先调用WSACleanUp,然后再AfxSocketInit,可是到了Create的时候却遇到了WSANOTINITIALISED 的错误,不知道这是怎么搞的。对于处理这种情况,大家一般的作法是怎样的?
小弟给分一向毫不吝啬,敬盼各位高手的赐教
...全文
231 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
jjiaming 2005-08-14
  • 打赏
  • 举报
回复
那create时我并没有指定端口号啊
jjiaming 2005-08-14
  • 打赏
  • 举报
回复
to dirdirdir3(风):
头一次Create时是在基类一个GetValueAt(好像是这个函数)里出的错
jjiaming 2005-08-14
  • 打赏
  • 举报
回复
那怎么办啊
总不能让程序等好几分钟再重连吧
zengwujun 2005-08-14
  • 打赏
  • 举报
回复
TCP连接的一端(主动关闭端)使用closesocket关闭连接,会依次经历三种状态
(1)FIN_WAIT_1:掉用closesocket,发送FIN数据包时,进入FIN_WAIT_1状态
(2)FIN_WAIT_2:收到对FIN数据包的回应时,进入FIN_WAIT_2状态
(3)TIME_WAIT:被动关闭端,调用closesocket,发送FIN数据包,使主动关闭端进入TIME_WAIT状态

TIME_WAIT状态一般要持续好几分钟,在这个时间段内,对服务器同一端口的连接会导致:地址正在使用的错误。如果create需要指定服务器地址和端口,那肯定会出错的。

而且这个属性是tcp协议决定的,你WSACleanUp没有用的
dirdirdir3 2005-08-14
  • 打赏
  • 举报
回复
前面create时遇到的是什么问题?
jjiaming 2005-08-14
  • 打赏
  • 举报
回复
试过了,还是不行,总之在Create的时候出错
jjiaming 2005-08-14
  • 打赏
  • 举报
回复
closesocket(Client->m_hSocket); 这样可以吗
dirdirdir3 2005-08-14
  • 打赏
  • 举报
回复
先要close()再delete,再new,create
jjiaming 2005-08-14
  • 打赏
  • 举报
回复
来者有分。在线等
jjiaming 2005-08-14
  • 打赏
  • 举报
回复
自己先顶一下

18,356

社区成员

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

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