首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网络技术 > 网络协议 >

send()发送了消息之后,如何避免好服务器的回应

2012-04-24 
send()发送了消息之后,如何处理好服务器的回应?C/C++ codevoid CChatDlg::OnClose(){send(g_ClientSocket,

send()发送了消息之后,如何处理好服务器的回应?

C/C++ code
void CChatDlg::OnClose(){    send(g_ClientSocket, (char*)&head, sizeof(head), 0);    send(g_ClientSocket, theApp.m_strUserName.GetBuffer(0), head.m_StrLen, 0);    WSACleanup();    CDialog::OnClose();}


当客户端用户点击关闭按钮的时候,会连续调用两个send(),通知服务器“某某下线”
但由于网络传输的速度问题,服务器往往还没接到这个send()消息,WSACleanup()就被执行了,并且程序随之关闭。
这样的话,服务器就收不到该客户端的send()消息了。

那这种情况要怎么处理?即send()之后,如何控制程序,让他收到服务器的响应后再执行下去。
用bool变量控制?

[解决办法]
看一下setsockopt这个接口

热点排行