关于CAsyncSocket的Send()
我的代码如下:
BOOL res=m_pMySocket->Create();
if (!res)
{
AfxMessageBox("Socket created error!");
}
res=m_pMySocket->Connect(m_Host,m_nPort);
if (!res)
if (GetLastError()!=WSAEWOULDBLOCK)
AfxMessageBox("Error! Can't connect to server!",MB_ICONEXCLAMATION);
if(GetLastError()!=WSAEWOULDBLOCK)
{
AfxMessageBox("error!");
return;
}
// while(GetLastError()==WSAEWOULDBLOCK)
// ;
CString strsend="*";
int nsend=m_pMySocket->Send(strsend,strsend.GetLength(),0);
if (nsend!=strsend.GetLength())
{
if(GetLastError()!=WSAEWOULDBLOCK)
{
AfxMessageBox("error!");
return;
}
}
在我调用send函数的时候返回值是 WSAEWOULDBLOCK 10035,也就是请求不能立刻被执行;
1:是不是在send 完成后调用OnSend()?(5分)
2:我用WPE看不到send() 的内容被发送出来,这个send一定会被阻塞不会立即执行,而我如果自己在另一个地方用send()(等待一段时间后调用)就可以看到send的内容被发送出去了;
我的问题是当send()被阻塞后它还会不会执行??如果执行了为什么在WPE中我看不到?(5分)
3:如果被阻塞后不执行我该怎么做,才能发送我要发送的内容??(求源码 50分-解决立即结贴-只限于用CAsyncSocket实现)