ホームページ  >  記事  >  Java  >  Java UDP 通信の詳細な紹介

Java UDP 通信の詳細な紹介

王林
王林転載
2019-11-26 14:32:513015ブラウズ

Java UDP 通信の詳細な紹介

はじめに:

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 サイトの他の関連記事を参照してください。

声明:
この記事はcsdn.netで複製されています。侵害がある場合は、admin@php.cn までご連絡ください。