关于CAsyncSocket的Send()

maomaosansan maomaosansan 墨衍会员 · AI 创作全网分发 墨衍智能分发 通过墨衍一键同步至各平台 可同步平台 CSDN微信公众号微博知乎掘金百家号博客园抖音小红书 你的文章也可以这样分发 墨衍会员 ¥399起/年,写一次发全网 我也要 + 加入社区
我的代码如下:
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实现)


...全文
评论 15
收藏 已收藏
分享
返回顶部
maomaosansan
网络编程 18,356 成员 64,161 内容