ネットワークプログラミング 4章 データグラム
- 4.1. データグラム通信
- 4.2. DatagramSocketクラス
- 4.3. DatagramPacketクラス
- 4.4. データグラム通信プログラム
- 4.5. プログラムの実行
4.2. DatagramSocketクラス
DatagramSocketはUDP通信を行うためのソケットです。先ほど書いたとおり、UDP通信では固定的なコネクションを必要としないため、ローカルのポートにさえバインドされていれば通信を行うことができます。ローカルホストのポートにバインドされたDatagramSocketのインスタンスを作成するには、次のコンストラクタを用います。
- public DatagramSocket()
- public DatagramSocket(int port)
- public DatagramSocket(int port, InetAddress laddr)
- public DatagramSocket(SocketAddress bindaddr)
これらのコンストラクタの引数は、すべてローカルホストのアドレスやポートを指定するものです。引数のないコンストラクタを使用すると、自動的に割り振られたアドレスにバインドされます。
DatagramSocketクラスには、connect()やdisconnect()など、リモートソケットとのコネクションを扱うメソッドが用意されています。このようなメソッドを見ると、DatagramSocketでもSocketのようにコネクションを確立することができるように思えるかもしれません。しかし、これは単に特定のリモートソケットのみと通信することを宣言しているだけであり、UDPのプロトコル自体にコネクションの概念はありません。