1

socket.ReceiveFrom (byte [] message, EndPoint endPoint)バインドされたUDPソケットでデータを受信するために使用され、データが受信されない場合はどうなりますか?データが到着するのを待ち続けますか、それとも継続しますか?私は特にUDPデータグラムについて話している。

4

2 に答える 2

2

データ待ちになります。この動作が十分でない場合は、非同期受信を使用できます。UDPClient も使用します。Socket 自体でロールする必要はありません。

読み取り可能なデータがない場合、データが使用可能になるまで ReceiveFrom メソッドはブロックされます。

ソース: http://msdn.microsoft.com/en-us/library/aa329728%28v=vs.71%29.aspx

于 2011-12-31T05:19:10.007 に答える
1

目標が X 秒後にソケットのリッスンを強制的に停止することであり、他のこと (アプリケーションがシャットダウンしているかどうかの確認など) を実行できるようにすることであり、同期ソケットを使用している場合は、Socket.ReceiveTimeoutX 秒に設定することをお勧めします。 (ミリ秒単位であるため、1000 倍Socket.ReceiveTimeout)、タイムアウト時に発生した結果の例外をキャッチします。

于 2011-12-31T06:00:21.327 に答える