【问题标题】:How to use poll with multicast如何将轮询与多播一起使用
【发布时间】:2012-05-30 06:34:37
【问题描述】:

我过去曾使用 poll ,其中服务器有多个连接的文件描述符,但是在想要监听各种多播组的情况下如何使用 poll 呢?据我了解,这将需要多个 upd 套接字想要在加入一个组后调用 recvfrom,但从不连接这些套接字。无论如何,一个人是否会轮询这些描述符,然后在事件触发时调用 recvfrom?网络上有什么简单的小例子吗?

谢谢

【问题讨论】:

    标签: network-programming multicast


    【解决方案1】:

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

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

    还要记住 UDP 是不可靠的,所以如果你没有足够快地使用这些数据报,它们会填满套接字接收缓冲区并且内核开始丢弃它们。

    【讨论】:

      猜你喜欢
      • 2019-10-19
      • 2016-05-31
      • 2017-10-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-03-16
      相关资源
      最近更新 更多