Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/sockets/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sockets 从udp套接字一次向多个客户端发送数据包_Sockets - Fatal编程技术网

Sockets 从udp套接字一次向多个客户端发送数据包

Sockets 从udp套接字一次向多个客户端发送数据包,sockets,Sockets,我试图编写一个udp服务器,将一个文件的实例发送到多个客户端。现在假设我如何静态地知道这些客户端的地址(为了简单起见)现在我想把这个数据包发送到这些地址。那么我需要如何准确地填充sockaddr结构来包含这些客户机的地址。我需要一个sockaddr结构数组(包含客户机地址)现在的问题是填充单个sockaddr结构以包含客户端地址。 我正试着做那样的事 sa[1].sin_family = AF_INET; sa[1].sin_addr.s_addr = htonl(INADDR_ANY);/

我试图编写一个udp服务器,将一个文件的实例发送到多个客户端。现在假设我如何静态地知道这些客户端的地址(为了简单起见)现在我想把这个数据包发送到这些地址。那么我需要如何准确地填充sockaddr结构来包含这些客户机的地址。我需要一个sockaddr结构数组(包含客户机地址)现在的问题是填充单个sockaddr结构以包含客户端地址。 我正试着做那样的事

 sa[1].sin_family = AF_INET;
 sa[1].sin_addr.s_addr = htonl(INADDR_ANY);//should'nt I replace this INADDR_ANY with client ip??
 sa[1].sin_port = htons(50002);
如果这不是正确的方法,请纠正我。 我们将非常感谢您在这方面的帮助

事先致谢,


Mawia

sin_addr应设置为目标地址

if (! inet_aton("1.2.3.4", &sa[1].sin_addr)) {
    // Give up all hope
}
// Everything is copacetic.

看起来你在说什么。这比琐事要难一点


查看以了解如何订阅多播组(对于客户端)以及如何发送多播数据包(对于服务器端)。这是用python讨论的,但只使用套接字库周围的低级包装器,因此将示例翻译成任何语言都应该非常简单。

正如另一篇文章中提到的,您谈论的是多播,但在公共Internet上,这需要ISP支持


有一种东西叫做“一个”。writeup可以追溯到2000年,描述了一种这样的方法。

非常感谢主席先生的回复。这非常有帮助。谢谢,再次感谢!谢谢你!copacate是一个奇妙的词。