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

jjiaming 软件部经理  2005-08-14 04:15:33
RT,小弟的方法是用delete ,然后再new ,再Create,但是在Create时就遇到了问题,于是发了狠,先调用WSACleanUp,然后再AfxSocketInit,可是到了Create的时候却遇到了WSANOTINITIALISED 的错误,不知道这是怎么搞的。对于处理这种情况,大家一般的作法是怎样的?
小弟给分一向毫不吝啬,敬盼各位高手的赐教
...全文
191 点赞 收藏 10
写回复
10 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
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
自己先顶一下
回复
相关推荐
发帖
网络编程
创建于2007-09-28

1.8w+

社区成员

VC/MFC 网络编程
申请成为版主
帖子事件
创建了帖子
2005-08-14 04:15
社区公告
暂无公告