ネットワークプログラミング 4章 データグラム
- 4.1. データグラム通信
- 4.2. DatagramSocketクラス
- 4.3. DatagramPacketクラス
- 4.4. データグラム通信プログラム
- 4.5. プログラムの実行
4.5. プログラムの実行
まず受信側プログラムを起動します。次のようなメッセージが表示されます。

次に、送信側プログラムを起動します。この例では同一のホスト上で送受信双方のプログラム起動しているため、接続先ホストとしてlocalhostを指定しています。キーボードから文字列を入力すると、受信側プログラムで文字列が受信されることを確認できます。


TCPの場合、サーバを起動していないときにクライアントを起動しようとすると、コネクションが確立できないためSocketExceptionが発生します。しかし、このUDPのプログラムの場合、クライアントだけでも起動できますし、パケットの送信先がデータを受信していなくても例外は発生しません。確実にデータが受信されたことを保証しなければいけない場合はTCPを利用するべきです。UDPを利用する場合、データが到達していなくても誤動作しないようにプログラムを作成しなければいけません。
(実習課題1)
第2節〜第3節で作成した、Daytimeサーバ・クライアントをUDPを利用したものに変更して下さい。クライアント側では、要求を送信して5秒以内に返答が無い場合、エラーメッセージを表示するようにして下さい。