本机测试udp丢包问题
发送端和接收端在同一台主机上,发送端共发送500个,但是接收端每次只能共收到278个。如果发送端发的慢点的话,接收端能全部收到,但是总共发送的数据量很小,接收缓冲区完全够放,应该不是发送端发送过快导致的。
问题:
为什么接收端仅收到278个呢
//packet
struct packet{
//帧id
uint16_t frame_id;
//数据
int data;
};
//server发送0-499给client
//int buffer[500];
for(int i=0;i<500;i++){
packet pt;
pt.frame_id = i;
memcpy(&pt.data,buffer+i,sizeof(pt.data));
int size = sendto(sockfd,&pt,sizeof(pt),0,(struct sockaddr *)&client,sizeof(client));
//printf("frame_id %d data: %d\n",i);
//sleep(0.01);
}
//client
while(1){
int size = recvfrom(sockfd,recv_buf,sizeof(recv_buf),0,(struct sockaddr *)&server,&addr_len);
if(size<=0) continue;
printf("received:frame_id:%d",recv_buf[0].frame_id);
}
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论