我试图通过UDP协议在注册的多个客户端上广播消息 .
我相信我们需要以下两个命令来发送和接收套接字:
sendto(sock,buffer,
strlen(buffer),0,(const struct sockaddr *)&server,length);
recvfrom(sock,buffer,256,0,(struct sockaddr *)&from, &length);
我们可以看到,我们需要6个参数,第二个是接收者的地址 . 在客户端到服务器的情况下,我们有地址 . 但是从服务器到客户端,我们只有收到消息的最后一个客户端的地址 .
I had also tried storing the addresses of all sockets who connect to server atleast once , so that we can use sendto(), But as all client are running on same machine, That &from seems to be same.
有哪些替代品?我哪里错了?我只想向在本地计算机上运行的所有客户端广播消息 . ?
1 回答
网络堆栈实现默认情况下可能不允许发送UDP广播 . 您需要在某些环境中启用广播:
setsockopt的实际参数列表应该在您的操作系统文档中提供,如1或2 .