はじめに:
UDP はユーザー データグラム プロトコルです。Java で UDP を操作するには、java.net
パッケージの下の を使用します。 JDK DatagramSocket
クラスと DatagramPacket
クラスを使用すると、ユーザー データ メッセージを簡単に制御できます。
DatagramPacket
クラスは、データ バイトをデータグラムと呼ばれる UDP パケットに埋めます。
DatagramSocket
は、このパケットの送信に使用されます。データを受け入れる場合は、DatagramSocket から DatagramPack オブジェクトを受け入れて、パッケージからデータの内容を読み取ることができます。
UDP はコネクションレス型のシンプレックス通信であり、高速です。
オンライン ビデオ チュートリアルの推奨事項: java オンライン ビデオ
1. DatagramSocket クラス
コンストラクター :
DatagramSocket()
インスタンスを作成します。通常はクライアント プログラミングに使用されます。これには特定のリスニング ポートはなく、一時的なポートのみが使用されます。
DatagramSocket(int port)
インスタンスを作成し、Port ポートのパケットを監視します。
DatagramSocket(int port, InetAddress laddr)
これは非常に便利なビルダーです。マシンに複数の IP アドレスがある場合、マシンによって作成されたインスタンスは LocalAddr からのメッセージのみを受信します。
DatagramSocket(SocketAddress bindaddr)
ポートとアドレスは、bindaddr オブジェクトで指定されます。
一般的に使用される関数:
receive(DatagramPacket p)
データ パケットを p に受信します。受信メソッドはブロッキングです。データグラム パケットが受信されない場合、パケットはブロックされます。
send(DatagramPacket p)
メッセージ p を宛先に送信します。
setSoTimeout(int timeout)
タイムアウトをミリ秒単位で設定します。
close()
DatagramSocket を閉じます。アプリケーションが終了すると、通常は積極的にリソースを解放し、Socket を閉じますが、異常終了によりリソースが再利用されない場合があります。したがって、プログラムの完了時にソケットを閉じるか、例外をキャッチした後にソケットを閉じる場合には、このメソッドを積極的に使用する必要があります。
2. DatagramPacket クラス
DatagramPacket クラスは、メッセージを処理し、バイト配列、ターゲット アドレス、ターゲット ポート、その他のデータをパッケージ化するために使用されます。メッセージを取得するか、メッセージをバイト配列に逆アセンブルします。
コンストラクター:
DatagramPacket(byte[] buf, int length, InetAddress addr, int port)
buf バイト配列からオフセットと長さから始まるデータを取得してデータ オブジェクトを作成します (ターゲット アドレスは addr、ターゲット ポートは port)。
DatagramPacket(byte buf[], int offset, int length, SocketAddress address)
buf バイト配列からオフセットと長さからデータを取り出してデータオブジェクトを作成します ターゲットアドレスは address
よく使われる関数:
getData() byte[]
Getインスタンスからのそれ メッセージ内のバイト配列エンコーディング。
setData(byte[] buf, int offset, int length)
データグラムパッケージにデータ内容を設定
3. UDP通信の通信処理
UDP送信者:
1. updsocket サービスを確立します。
2. データを提供し、データをデータ パケットにカプセル化します。
3. ソケットサービスの送信機能を利用してデータパケットを送信します。
4. リソースを閉じます。
UDP 受信側:
1. 通常はポートでリッスンする udpsocket サービスを定義します。
2. 受信したバイトデータを格納するデータパケットを定義します。
3. ソケットサービスの受信メソッドを通じて、受信したデータを定義したデータパケットに格納します。
4. データ パケット オブジェクトの独自の機能を通じて、これらのさまざまなデータが取り出され、コンソールに表示されます。
5. リソースを閉じます。
その他の関連する質問については、Java 記事チュートリアルを参照してください: Java 入門
以上がJava UDP 通信の詳細な紹介の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。