请教请教!!CAsyncSocket类问题!

步-月 2003-08-20 09:31:32
我在使用Receive接收数据时为什么返回总是0字节?请指教。
...全文
32 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
步-月 2003-08-20
  • 打赏
  • 举报
回复
问题解决了,我用的Receive缓存m_ReceiveBuf是CByteArray类,在使用前在构造函数中调用m_ReceiveBuf.SetSize(1024);后调试通过。
但仍感谢你们的up
步-月 2003-08-20
  • 打赏
  • 举报
回复
ifromheaven(天堂鸟)
我也是象说得那样做的,nErrorCode==0,但Receive()结果就是没有数据。
void CRequestSocket::OnReceive(int nErrorCode)
{
mObject,NULL,1,NULL,NULL,INTERNET_FLAG_NO_AUTO_REDIRECT);
if(nErrorCode ==0)
{
int nBytes = Receive( m_ReceiveBuf.GetData(), (int)m_ReceiveBuf.GetSize() );

switch(nBytes)
{
case 0:
Close();
break;
case SOCKET_ERROR :
if (GetLastError() != WSAEWOULDBLOCK)
{
nBytes = GetLastError();
AfxMessageBox ("Error occurred");
Close();
}
break;
default:
m_strReceiveRequest = "";
GetString(m_strReceiveRequest,m_ReceiveBuf,nBytes);
}
}

CAsyncSocket::OnReceive(nErrorCode);
}
tanyx 2003-08-20
  • 打赏
  • 举报
回复
帮你up
ifromheaven 2003-08-20
  • 打赏
  • 举报
回复
重载OnReceive(int nErrorCode)
void CMySocket::OnReceive(int nErrorCode)
{
if(nErrorCode==0)
{

int nBuffSize=999;
int nRcvd;
char *Buffer=new char[1000];
CString Recvd;
nRcvd=this->Receive(Buffer,nBuffSize);
}

CAsyncSocket::OnReceive(nErrorCode);
}
Viconia 2003-08-20
  • 打赏
  • 举报
回复
什么啊,能不能说详细点

帮UP

18,356

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 网络编程
c++c语言开发语言 技术论坛(原bbs)
社区管理员
  • 网络编程
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧