一个关于组播的思考问题

正文

问题描述

在socket多播(组播)编程中,一个套接字已经加入了一个多播组,开始持续接收数据。在实时接收数据的过程中,上游多播组或者路由器发生意外,导致套接字无法接收到实时数据。然后套接字加入备多播组收取数据。过了几分钟后,原多播组或者路由器恢复正常,此时套接字是否会收到两份数据?在发生意外的情况下,如果套接字想只接收一份数据,应该怎么做呢?

正文

目前有两个想法:

  • 对数据进行过滤,在recvfrom()收数据的时候,如果收到的不是当前多播组发送的数据,就将其丢掉
  • 在发生意外后,先不急着退出组播组,关闭套接字,而是先创建另一个套接字,然后再执行退出多播组,关闭套接字的操作,之后是否只会收到一份数据呢?这个想法仍需要验证

思考

如果是路由器出现问题了,那是否意味着套接字不可能再从这个路由器所在链路收到数据了呢?


标题:一个关于组播的思考问题
作者:staymeloo7
联系方式:staycoolsun@gmail.com

    评论
    0 评论
avatar

取消