读书人

send()发送了消息之后如何避免好服务

发布时间: 2012-04-24 14:15:38 作者: rapoo

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这个接口

读书人网 >网络协议

热点推荐