5

でマルチキャスト クライアントを構築していますがGCDAsyncUdpSocket、大量のパケット損失に直面しています。

Wireshark でサーバーを監視し、AirCap で空中の WiFi パケットをキャプチャしましたが、パケットが適切に送信されていることを確認しています。ライブラリからのデバッグ トレースも調べたところ、 4000 などの大きな引数で呼び出されるGCDAsyncUdpSocketことがあることがわかりsocket4FDBytesAvailable:ましたが、ソケットを読み取ると、読み取ったバイト数が少なくなり、おそらく 500 バイトになり、パケットが失われます。ソケットバッファーを増やしましたが、それは役に立ちません。

最後に、偶然かどうかに関係なく、Instruments のタイム プロファイラーを使用していて、パケットを失うたびに DISPATCH_WORKER_THREAD の新しいインスタンスが 1 つ作成されることに気付きました。これは正常ですか?

4

0 に答える 0