2

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

前もって感謝します。

4

1 に答える 1

1

DatagramChannel .send()のJavadocは、違いを示します

データグラムは、通常の書き込み操作のようにバイトバッファから転送されます。

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

于 2011-10-05T12:31:58.417 に答える