Java UDP通信の実現
2771 ワード
▪ DatagramSocket:パケットを送信または受信するために使用されます。
サーバがクライアントにデータを送信するには、サーバ端にDatagramSocketオブジェクトを生成し、クライアントにDatagram Socketオブジェクトを生成する必要がある。サーバ端のDatagramSocketはDatagram Packetをネットワークに送信し、クライアントのDatagram Socketに受信される。
Datagram Socketにはよく使われる2つの構造関数があります。一つは、任意のパラメータを必要とせず、クライアントでよく使用される。もう一つはポートを指定する必要があります。サーバー側でよく使われています。以下の通りです
DatagramSocket():データグラムソケットを構築し、ローカルホスト上の任意の利用可能なポートにバインドする。
Datagram Socket(int port):データグラムソケットを作成し、ローカルホスト上の指定ポートにバインドする。
常用方法:
Øsend(Datagram Packet p):これからソケットでデータパケットを送ります。
Øreceive(Datagram Packet p):これからソケットでデータパケットを受信します。
Øclose():このデータのソケットを閉じます。
▪ Datagram Packet:データ容器(封包)の役割
このようなのはデータのパケットを表します。パケットの機能を実現するために使用されます。
常用方法:
ØDatagram Packet(byte[]buf,int length):長さlengthのパケットを受信するためのデータパケットを構築する。
ØDatagramPacket(byte[]buf,int length,InetAddres address,int port):パケットを構築し、指定されたホスト上の指定されたポート番号にlengthのパケットを送信する。
Øget Addres():送信または受信したコンピュータのIPアドレスを取得し、このデータグラムはこのマシンに送信されます。またはこのマシンから受信されます。
Øget Data():送信または受信したデータを取得する。
Øset Data(byte[]buf):送信データを設定します。
UDP通信プログラミングの基本ステップ:
1.クライアントのDatagramSocketを作成し、作成時にクライアントの傍受ポートを定義します。
2.サーバ端のDatagramSocketを作成し、作成時にサーバ端の傍受ポートを定義します。
3.サーバ端でDatagramPacketオブジェクトを定義し、送信するパケットをパッケージ化する。
4.クライアントは、パケットを送信します。
5.サーバ側でデータのパケットを受信します。
UDP:一方向通信のクライアント
サーバがクライアントにデータを送信するには、サーバ端にDatagramSocketオブジェクトを生成し、クライアントにDatagram Socketオブジェクトを生成する必要がある。サーバ端のDatagramSocketはDatagram Packetをネットワークに送信し、クライアントのDatagram Socketに受信される。
Datagram Socketにはよく使われる2つの構造関数があります。一つは、任意のパラメータを必要とせず、クライアントでよく使用される。もう一つはポートを指定する必要があります。サーバー側でよく使われています。以下の通りです
DatagramSocket():データグラムソケットを構築し、ローカルホスト上の任意の利用可能なポートにバインドする。
Datagram Socket(int port):データグラムソケットを作成し、ローカルホスト上の指定ポートにバインドする。
常用方法:
Øsend(Datagram Packet p):これからソケットでデータパケットを送ります。
Øreceive(Datagram Packet p):これからソケットでデータパケットを受信します。
Øclose():このデータのソケットを閉じます。
▪ Datagram Packet:データ容器(封包)の役割
このようなのはデータのパケットを表します。パケットの機能を実現するために使用されます。
常用方法:
ØDatagram Packet(byte[]buf,int length):長さlengthのパケットを受信するためのデータパケットを構築する。
ØDatagramPacket(byte[]buf,int length,InetAddres address,int port):パケットを構築し、指定されたホスト上の指定されたポート番号にlengthのパケットを送信する。
Øget Addres():送信または受信したコンピュータのIPアドレスを取得し、このデータグラムはこのマシンに送信されます。またはこのマシンから受信されます。
Øget Data():送信または受信したデータを取得する。
Øset Data(byte[]buf):送信データを設定します。
UDP通信プログラミングの基本ステップ:
1.クライアントのDatagramSocketを作成し、作成時にクライアントの傍受ポートを定義します。
2.サーバ端のDatagramSocketを作成し、作成時にサーバ端の傍受ポートを定義します。
3.サーバ端でDatagramPacketオブジェクトを定義し、送信するパケットをパッケージ化する。
4.クライアントは、パケットを送信します。
5.サーバ側でデータのパケットを受信します。
UDP:一方向通信のクライアント
mport java.net.DatagramPacket;
import java.net.DatagramSocket;
import java.net.InetSocketAddress;
public class Client {
public static void main(String[] args) throws Exception {
byte[] b = " ".getBytes();
// ,
DatagramPacket dp = new DatagramPacket(b,b.length,new
InetSocketAddress("localhost",8999));
// :
DatagramSocket ds = new DatagramSocket(9000);
//
ds.send(dp);
//
ds.close();
}
}
UDP:一方向通信のサーバ端import java.net.DatagramPacket;
import java.net.DatagramSocket;
public class Server {
public static void main(String[] args) throws Exception {
// :
DatagramSocket ds = new DatagramSocket(8999);
byte[] b = new byte[1024];
// ,
DatagramPacket dp = new DatagramPacket(b, b.length);
//
ds.receive(dp); //
//dp.getLength()
String string = new String(dp.getData(), 0, dp.getLength());
System.out.println(string);
//
ds.close();
}
}
バイト配列ストリームByteArayInputStream、ByteArayOutputStreamとデータストリームData InputStream、Data OutputStreamとの連携により、ベースデータタイプを転送することができます。