求救!UDP接收信息莫名丢失

bluesummer 2004-03-26 10:09:51
我的接收线程函数是这样的:
void CComm::ListenThread(void *data)
{
char buf[4096];
CComm *Comm=(CComm*)data;
int len=sizeof(Comm->client);
while(1)
{
int result=recvfrom(Comm->ListenSocket,buf,sizeof(buf)-1,0,(sockaddr*)&Comm->client,(socklen_t*)&len);
if(result>0)
{
char res[20];
itoa(result,res,10);
buf[result]=0;
BSTR str=_com_util::ConvertStringToBSTR(res);
BSTR msg=_com_util::ConvertStringToBSTR(buf);
......//处理收到的信息

//下面是我在WIN32应用里面的程序段
//cout<<result<<"个字节的信息"<<endl;
//buf[result]=0;
//cout<<"Message received from host "<<inet_ntoa(Comm->client.sin_addr)<<endl;
//cout<<buf<<endl;
}
}
}
结果是无论我发送多少字节的东西总是只能收到4个字节的信息,我觉得很奇怪,因为我曾经在WIN32应用程序里面这么做是没有问题的,我现在只不过把它移植到了COM组件里,请问各位大侠,这是怎么回事呢?
...全文
41 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
FireEmissary 2004-03-26
  • 打赏
  • 举报
回复
win32app没问题?
joymaoyong 2004-03-26
  • 打赏
  • 举报
回复
up
zhaolaoxin 2004-03-26
  • 打赏
  • 举报
回复
gz
microyzy 2004-03-26
  • 打赏
  • 举报
回复
udp丢失正常啊,需要你自己得程序验证,重发
bluesummer 2004-03-26
  • 打赏
  • 举报
回复
找到原因了,是sendto函数里我把发送字节误设为4了,char *msg; ... sizeof(msg)的问题。不好意思

18,356

社区成员

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

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