send()发送了消息之后,如何避免好服务器的回应
send()发送了消息之后,如何处理好服务器的回应?C/C++ codevoid CChatDlg::OnClose(){send(g_ClientSocket,
send()发送了消息之后,如何处理好服务器的回应?
C/C++ codevoid 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这个接口