|
| |
 |
データグラム編 |
 |
◆データグラムとは? |
| データグラムとはUDPプロトコルで使用するデータの単位、またはデータの転送方式のことです。 |
| ◆UDPとは? |
| User Datagram Protocolの略です。インターネットで使用されている標準プロトコルです。UDPはTCPと異なり、相手と接続を確立しないで、データを相手先に送ります。送信の途中でデータが紛失しても再送しないので相手にデータが届いたかどうかの保証はありません。しかし、その分、TCPより通信速度が速いメリットがあります。この通信を「コネクションレス型通信」と呼びます。 |
| ◆TCPとは? |
| Transmission Control Protocolの略です。インターネットで使用されている標準プロトコルです。TCPはUDPと異なり相手との接続を確立してからデータのやり取りを行います。送信の途中でデータが紛失してもデータの再送を行うので相手にデータが届いたことが保証されます。その分、UDPより通信速度が遅くなります。この通信を「コネクション型通信」と呼びます。この通信の例はソケット編を参照してください。 |
| ◆ここでの環境 |
| OS |
Windows XP |
| J2SE SDK |
1.4.1_01 |
|
|
|
| ◆Java実行環境の構築 |
| アプリケーション編を参考にしてJava実行環境を構築してください。 |
| ◆データを受信するコードの作成 |
| UDPプロトコルで送られてきたデータを受信するプログラムを作成します。 |
| HelloWorldUDPReceiver.java(ここからダウンロード) |
import java.net.*;
public class HelloWorldUDPReceiver {
public static void main(String[] args) {
try{
byte buf[] = new byte[256];
/** データを受信 **/
// データグラムソケットを作成(引数にポート番号を指定)
DatagramSocket socket = new DatagramSocket(5555);
// 受信するデータグラムパケットを作成
DatagramPacket packet = new DatagramPacket(buf, buf.length);
// データグラムパケットを受信します。
// 受信するとpacketのバッファにデータが格納されます。
socket.receive(packet);
// 受信したデータを取得
String data = new String(packet.getData(),0,packet.getLength());
System.out.println("\"" + data + "\"を受信しました");
}catch(Exception e){
e.printStackTrace();
}
}
} |
|
|
|
| ◆データを送信するコードの作成 |
| UDPプロトコルでデータを送信するプログラムを作成します。 |
| HelloWorldUDPSender.java(ここからダウンロード) |
import java.net.*;
public class HelloWorldUDPSender {
public static void main(String[] args) {
try{
byte buf[] = "Hello World".getBytes();
/** データを送信 **/
// データグラムソケットを作成
DatagramSocket socket = new DatagramSocket();
// 送信するデータグラムパケットを作成(アドレスとポート番号を指定)
DatagramPacket packet = new DatagramPacket(buf,
buf.length,
InetAddress.getByName("localhost"),
5555);
// データを送信します。
socket.send(packet);
System.out.println("\"" + new String(buf) + "\"を送信しました");
}catch(Exception e){
e.printStackTrace();
}
}
} |
|
|
|
| ◆コンパイル |
| コマンドプロンプト |
| C:\JavaHello\Datagram>javac
HelloWorldUDPSender.java HelloWorldUDPReceiver.java
C:\JavaHello\Datagram>
|
|
| ◆データを受信するプログラムの実行 |
| まず、データを受信するプログラムを実行します。 |
| コマンドプロンプト |
C:\JavaHello\Datagram>java
HelloWorldUDPReceiver
|
|
| カーソルが点滅状態になり、クライアントからデータが送られてくるのを待っている状態になります。 |
| ◆データを送信するプログラムの実行 |
| 新しいコマンドプロンプトを立ち上げてデータを送信するプログラムを実行します。 |
| コマンドプロンプト |
| C:\JavaHello\Datagram>java
HelloWorldUDPSender
"Hello World"を送信しました
C:\JavaHello\Datagram> |
|
| データが送れたようです。データを受信するプログラムを実行したコマンドプロンプトを見てみます。 |
| コマンドプロンプト |
| C:\JavaHello\Datagram>java
HelloWorldUDPReceiver
"Hello World"を受信しました
C:\JavaHello\Datagram> |
|
| おおおお!データを受信できましたね! |
| |
■関連
ソケット編 |
■書籍
Java関連の書籍 |
|
| |
|
| |
| ツールの部屋
- Java関連の書籍 - デザインパターン - 情報交換掲示板
- HOME |