首页 > 解决方案 > 尝试使用 sendto() 发送消息时出错

问题描述

我正在尝试用 C 制作一个简单的服务器,但我的程序以“错误地址”错误结束。我的目标是继续通过 UDP 接收消息,并将它们发送到数组的每个地址。这是数组(和计数器):

struct sockaddr_in add[MAX_CLIENTS]; clients = 0;

这就是我添加更多客户的方式:

add[clients] = echoClntAddr; clients++;

echoClntAddr是,当然,一个struct sockaddr_in;在我使用该recvfrom()函数从中接收消息后执行此行。

这就是我尝试进行广播的地方:

for(int i=0; i < clients; i++){
            printf("\n Sending to client %ul",add[i].sin_addr.s_addr);
            if(sendto(sock, m, echoStringLen, 0, (struct sockaddr *) &add[i], sizeof(add[i])) != echoStringLen) 
                die("\n Error in sendto()");
        }

怎么了?我错误地存储了地址或将错误的参数传递给sendto()

标签: csockets

解决方案


推荐阅读