Network programming 如何在多播中使用轮询

Network programming 如何在多播中使用轮询,network-programming,multicast,Network Programming,Multicast,我过去使用过poll,其中一个服务器有多个连接的文件描述符,但是如果要侦听不同的多播组,如何使用poll呢?据我所知,这将导致多个upd套接字在加入组后想要调用recvfrom,但从未连接这些套接字..是否会在事件触发时对这些描述符进行轮询,然后调用recvfrom?网络上有这样的小例子吗 谢谢轮询是完全相同的-您等待几个套接字中的任何一个变得可读,找出哪个是,然后调用recv(2)或诸如此类。与TCP的不同之处在于,UDP套接字上的每次读取都会将一个数据报解队列,因此这稍微容易一些 您放入轮询

我过去使用过poll,其中一个服务器有多个连接的文件描述符,但是如果要侦听不同的多播组,如何使用poll呢?据我所知,这将导致多个upd套接字在加入组后想要调用recvfrom,但从未连接这些套接字..是否会在事件触发时对这些描述符进行轮询,然后调用recvfrom?网络上有这样的小例子吗


谢谢

轮询是完全相同的-您等待几个套接字中的任何一个变得可读,找出哪个是,然后调用
recv(2)
或诸如此类。与TCP的不同之处在于,UDP套接字上的每次读取都会将一个数据报解队列,因此这稍微容易一些

您放入轮询集中的套接字通常设置为非阻塞,在这种情况下,您需要处理来自
recv(2)
ewoldblock
错误

还请记住,UDP是不可靠的,所以如果您没有足够快地使用这些数据报,它们将填充套接字接收缓冲区,内核将开始删除它们