Java
Java
Java2 SE 5.0 API
Java2 SE 1.4 API
Java2 EE API
Struts 1.0.2
MSDN2 Library
MySQL 5.1
MySQL 4.1
HTMLリファレンス
CSSリファレンス
JavaScript
基本カラーチャート
カレンダー
 最新PG・講座情報
 最新ニュース
 電子辞書・辞典
ご意見・ご要望はこちらまで

課題

Java

UDPソケットプログラミング


1.ソケット・プログラムの概要

1.1 プログラムの仕様

 前回のTCPソケットに続いて、UDPソケットを利用した簡単なechoコネクションのサーバ/クライアントプログラムを作成します。
 仕様内容はTCPとUDPの違いのみですが、この大きな違いはTCPはコネクション型ですが、UDPはコネクション・レス型であることです。 よってサーバとクライアントのソケット(UDPの場合はデータグラム・ソケットと呼びます)を作成したら、即データ送受信は可能となります。 echoコネクションの方法は前回のTCPの方法と同じです。
(--> TCPソケットプログラミング )

 サーバとクライアントのプログラムのクラスは UdpServerUdpClient とします。 全体では次のような流れになります。

  • サーバのクラス(UdpServer)を起動し、データグラム・ソケットを作成する。
  • クライアントのクラス(UdpClient)を起動し、データグラム・ソケットを作成する。

  • クライアントから文字列を入力し、サーバに文字列を送信する。
  • サーバは文字列を受信し、その文字列をクライアントに送信する。
  • クライアントは文字列を受信し、その文字列を画面に表示する。
  • クライアントから入力と表示を繰り返し、"quit"入力で終了する。
  • サーバのクラスは、Ctrl+[C] で終了する。

文字列の入力と表示の流れ(echoコネクション)
 UdpServerのメソッド一覧
No. 戻り値 メソッド名 引数 内容
1 なし (static) main パラメータ(String[])
なし
データグラム・ソケットからの入出力を行う

 UdpClientのメソッド一覧
No. 戻り値 メソッド名 引数 内容
1 なし (static) main パラメータ(String[])
サーバのIPアドレス
データグラム・ソケットからの入出力を行う



1.2. UDP無接続パケットの説明

 UDPはTCPと違いコネクション・レス型のプロトコルですから、[SYN]・[ACK]等のやり取りはありません。 データグラム・パケット内に含まれている情報だけを基に、あるマシンから別のマシンへ送信されます。 よってサーバへのIPアドレスやポート番号の指定はクライアントがデータグラム・パケットを送る時に指定します。
 データグラム・パケットは異なる経路で送信される可能性があり、相手側には無作為の順序で到達する可能性があります。

 Javaのプログラムではデータグラム・パケット関連は、次のクラスとして用意されています。
 DatagramSocketクラスはデータグラム・ソケットを作成し、 DatagramPacketクラスで送受信用のデータグラム・パケットを作成します。

サーバとクライアントのデータグラム送受信

 
 INDEX
  課題 Java UDPソケットプログラミング
1.ソケット・プログラムの概要
  2.サーバ・プログラム
  3.クライアント・プログラム
  4.テストとまとめ
Top
Copyright© 2003-2007 FumikiChan All Rights Reserved.
http://www.fumikichan.net/