首页 > 解决方案 > 使用c发送和接收UDP数据包

问题描述

在这里,我试图将我的格式化数据发送到多个服务器,并一一接收它们的回复。但是,当我运行代码时,它只收到了第一个的回复,并停留在 recvfrom()。有谁知道为什么会发生这种情况以及如何解决?

for(int i=0;i<s->count;i++)
{
    int fromserver=0;
    recv[i]=malloc(2048);
    sendToserver(s->UDPserverID,udpFrame,s->neighbors[i]);
    while(1){
        fromserver=recvfrom(s->UDPserverID,recv[i],2048,MSG_WAITALL,(struct sockaddr*)&sender,&addr_size);
        if(fromserver!=0)
        {
            break;
        }
    }
    ask_back[i]=stringToFrame(recv[i]);
    sleep(1);
}  

标签: csockets

解决方案


推荐阅读