前回のTCPソケットに続いて、UDPソケットを利用した簡単なechoコネクションのサーバ/クライアントプログラムを作成します。 仕様内容はTCPとUDPの違いのみですが、この大きな違いはTCPはコネクション型ですが、UDPはコネクション・レス型であることです。 よってサーバとクライアントのソケット(UDPの場合はデータグラム・ソケットと呼びます)を作成したら、即データ送受信は可能となります。 echoコネクションの方法は前回のTCPの方法と同じです。 (--> TCPソケットプログラミング ) サーバとクライアントのプログラムのクラスは UdpServer、 UdpClient とします。 全体では次のような流れになります。
UDPはTCPと違いコネクション・レス型のプロトコルですから、[SYN]・[ACK]等のやり取りはありません。 データグラム・パケット内に含まれている情報だけを基に、あるマシンから別のマシンへ送信されます。 よってサーバへのIPアドレスやポート番号の指定はクライアントがデータグラム・パケットを送る時に指定します。 データグラム・パケットは異なる経路で送信される可能性があり、相手側には無作為の順序で到達する可能性があります。 Javaのプログラムではデータグラム・パケット関連は、次のクラスとして用意されています。 DatagramSocketクラスはデータグラム・ソケットを作成し、 DatagramPacketクラスで送受信用のデータグラム・パケットを作成します。