一个非阻塞socket在connect时,在没有返回结果前,能否关闭此socket?

alienmaster 2006-02-23 04:06:48
谢谢。
...全文
148 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
「已注销」 2006-03-09
  • 打赏
  • 举报
回复
异步非阻塞下,任何时候都可以close,但是如果是阻塞SOCKET,那么没返回CONNECT结果前就不好搞了。。
jobsccnu 2006-03-05
  • 打赏
  • 举报
回复
呵呵,正好我有个简单的心跳机制的连接程序,
贴出来,让大家讽刺一下,
这个里面就是没有返回结果前,能否关闭此socket

CSocket heartSock;
if(heartSock!=INVALID_SOCKET)
{
closesocket(heartSock);
}
if(!heartSock.Create())
{
AfxMessageBox("socket创建错误!");
return ;
}
if(!heartSock.Connect(LPCTSTR(theApp.m_sMidServerIP),PORT_CONN_HOST))
{
AfxMessageBox("App无法连接到主机!");
exit(1);
return ;
}
//发送生命信息,不需要返回消息
CMessg *pMsg=new CMessg;
pMsg->iType=HEARTCHECK;
pMsg->lUserID=theApp.m_lUserID;
heartSock.Send(pMsg,sizeof(CMessg),0);
//closesocket(heartSock);
heartSock.Close();
delete pMsg;pMsg=NULL;
netsys2 2006-02-24
  • 打赏
  • 举报
回复
任何时候都可以close
fierygnu 2006-02-23
  • 打赏
  • 举报
回复
可以。

4,356

社区成员

发帖
与我相关
我的任务
社区描述
通信技术相关讨论
社区管理员
  • 网络通信
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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