2011-10-05 6 views
2

私はJava NIOを使ってUDP通信システムを構築しており、APIのjavadocを参照してチャンネルに書き込みプリミティブと送信プリミティブがあることに気付きました。私は試作して両方を試しましたが、どちらも両者がバッファを提供するという点で変化するようなものはありません。同様に、私が見た本はこの疑念を解消するのに役立たないと思われたので、私は質問したと思いました:channel.writeとchannel.sendの違いは何ですか?NIOチャンネルの書き込みと送信の違いは何ですか?

ありがとうございます。

答えて

1

DatagramChannel .sendのJavadoc()データグラムは、通常のライト動作であるかのようにバイトのバッファから転送され

あなたの違いを伝えます。

このメソッドは、DatagramSocketクラスのsendメソッドとまったく同じセキュリティチェックを実行します。つまり、ソケットが特定のリモートアドレスに接続されておらず、セキュリティマネージャがインストールされている場合、送信される各データグラムに対して、このメソッドはセキュリティマネージャのcheckConnectメソッドによってターゲットアドレスとポート番号が許可されていることを検証します。このセキュリティチェックのオーバーヘッドは、まずconnectメソッドを使用してソケットを接続することで回避できます。

+1

...さらに、接続されているDatagramChannelに対してのみwrite()を呼び出すことができます。 – EJP

関連する問題