代码之家  ›  专栏  ›  技术社区  ›  Dan Goldstein

接收大量组播时单丢包

  •  1
  • Dan Goldstein  · 技术社区  · 14 年前

    我正在创建一个通过多播收听视频流的程序。在Linux上用mono听一个feed很好,但是听15个feed会丢弃数据包。在Windows.NET上运行代码不会丢弃数据包,在Linux上使用C程序侦听源不会丢弃数据包。我能做些什么来优化这个吗?

    1 回复  |  直到 14 年前
        1
  •  2
  •   Michael Goldshteyn    14 年前

    根据您使用的机制(代码方面),您可能无法足够快地捕获数据包。这将导致多播数据的下降,而从本质上讲,这是不可靠的。 如果没有更多关于所采用机制的信息,就很难给出更具体的建议。

    根据评论更新:

    如果每个接收器都有一个线程,并且线程数超过了CPU,那么您可能对线程的订阅过多,从而导致了大量昂贵的上下文切换。这可能导致数据包丢失。