recvfrom函数返回值问题
for(inti=0;i<RECVBUF;i++){intn=recvfrom(sockSrv,&recvBuf[i],sizeof(recvBuf),0,(SOCKAD...
for(int i=0;i<RECVBUF;i++)
{
int n=recvfrom(sockSrv,&recvBuf[i],sizeof(recvBuf),0,(SOCKADDR*) &addrClient,&len);
// int n=recvfrom(sockSrv,&recvBuf[i],RECVBUF,0,(SOCKADDR*) &addrClient,&len);
cout<<n<<" ";
if(n!=1)
//cout<<"over!"<<endl;
break;
count++;
cout<<"count "<<count<<": ";
cout<<(int)recvBuf[i]<<endl;
}
发端发送1000个数据包,收端只能收到567个包,而且是在同一台机器上进行的测试,UDP下为什么还会丢包啊
再看如下函数的第三个参数:
// int n=recvfrom(sockSrv,&recvBuf[i],RECVBUF,0,(SOCKADDR*) &addrClient,&len);
int n=recvfrom(sockSrv,&recvBuf[i],strlen(recvBuf)+1,0,(SOCKADDR*) &addrClient,&len);
若为第一个,则有丢包率,只能收到567个
第二个,能正确收到1000个包,但是却不能从for循环跳出来
recvfrom函数的返回值是1 -1 还是0? 展开
{
int n=recvfrom(sockSrv,&recvBuf[i],sizeof(recvBuf),0,(SOCKADDR*) &addrClient,&len);
// int n=recvfrom(sockSrv,&recvBuf[i],RECVBUF,0,(SOCKADDR*) &addrClient,&len);
cout<<n<<" ";
if(n!=1)
//cout<<"over!"<<endl;
break;
count++;
cout<<"count "<<count<<": ";
cout<<(int)recvBuf[i]<<endl;
}
发端发送1000个数据包,收端只能收到567个包,而且是在同一台机器上进行的测试,UDP下为什么还会丢包啊
再看如下函数的第三个参数:
// int n=recvfrom(sockSrv,&recvBuf[i],RECVBUF,0,(SOCKADDR*) &addrClient,&len);
int n=recvfrom(sockSrv,&recvBuf[i],strlen(recvBuf)+1,0,(SOCKADDR*) &addrClient,&len);
若为第一个,则有丢包率,只能收到567个
第二个,能正确收到1000个包,但是却不能从for循环跳出来
recvfrom函数的返回值是1 -1 还是0? 展开
1个回答
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询