c - 尝试使用 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()
?
解决方案
推荐阅读
- c# - 新的 .Net MAUI App 项目抛出“当前上下文中不存在名称‘InitializeComponent’”构建错误
- javascript - javascript -Uncaught ReferenceError: 年龄未定义
- python - 如何在 Apache/Flask 中将多行字符串记录为单个日志条目?
- python - 如何在熊猫的两个不同文件夹中读取同名文件?
- python - 如何使 Lux 包在 Python 中工作?
- typescript - 如何使 tsconfig.json 路径别名在 Razzle 项目中工作?
- amazon-web-services - EC2 实例拒绝连接
- node.js - 节点 - 无法验证第一个证书 / UNABLE_TO_VERIFY_LEAF_SIGNATURE localhost
- reactjs - 反应 - 遍历 BFS 时 useState 更新速度不够快
- docker - 使用带有 Kafka docker 容器错误的 Spark Streaming?