我的接收线程函数是这样的:
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组件里,请问各位大侠,这是怎么回事呢?