1

サーバーが複数の接続されたファイル記述子を持っている場合に過去にポーリングを使用しましたが、さまざまなマルチキャストグループをリッスンしたい場合にどのようにポーリングを使用しますか? 私の理解では、これには、グループに参加した後にrecvfromを呼び出したい複数のupdソケットが必要ですが、これらのソケットを接続することはありません..とにかくこれらの記述子をポーリングし、イベントがトリガーされたときにrecvfromを呼び出すでしょうか? ウェブ上にこれの小さな簡単な例はありますか?

ありがとう

4

1 に答える 1

2

ポーリングはまったく同じです。いくつかのソケットのいずれかが読み取り可能になるのを待ち、どれがどれであるかを調べてから、recv(2)呼び出します。TCP との違いは、UDP ソケットで読み取られるたびに 1 つのデータグラムがキューから取り出されるため、少し簡単です。

ポーリング セットに入れるソケットは、通常、非ブロッキングに設定されます。この場合、EWOULDBLOCKからのエラーを処理する必要がありますrecv(2)

また、UDP は信頼できないため、これらのデータグラムを十分な速度で消費しないと、ソケットの受信バッファーがいっぱいになり、カーネルがそれらを削除し始めます。

于 2012-05-29T22:34:37.757 に答える