目次へ

2.3. SocketAddress/InetSocketAddressクラス

SocketAddressはソケットを識別するアドレスを表すクラスです。ここでのソケットは通信プロトコルに依存しないソケットであり、TCPやUDPなどのTCP/IPプロトコルスイートにおけるソケットアドレスを表すにはInetSocketAddressを用います。InetSocketAddressはSocketAddressのサブクラスです。

TCPやUDPのソケットのアドレスとは、すなわちIPアドレスとポート番号の組み合わせです。InetSocketAddressには次の3つのコンストラクタが用意されています。3番目のコンストラクタでは特定のホストとは関連付けられません。2番目のコンストラクタでも、addrをnullとすることで特定のホストとは関連付けられないInetSocketAddressが生成されます。このようなソケットアドレスは、ローカルホスト(自ホスト)上のソケットアドレスを指定するために用いられます。

  • public InetSocketAddress(String hostname, int port)
  • public InetSocketAddress(InetAddress addr, int port)
  • public InetSocketAddress(int port)

2.4. Socketクラス

Socketクラスはソケットを表すクラスです。Socketはローカルホストの特定のポートに関連付けられます。また、そのSocketを実際に通信に利用するには、接続先のアドレスも指定されていなければいけません。Socketクラスには多くのコンストラクタがありますが、ソケットの接続先アドレスを指定し、すぐに通信に利用できるSocketインスタンスを生成するものは次のものがあります。

  • Socket(InetAddress address, int port)
  • Socket(InetAddress address, int port, InetAddress localAddr, int localPort)
  • Socket(String host, int port, InetAddress localAddr, int localPort)

ローカルのアドレス/ポートを指定していないものは、自動的に割り振られたポートに関連付けられます。コンストラクタでは接続元や接続先のアドレスを指定するのにSocketAddressは利用できませんので注意して下さい。

Socketを利用した通信は、入出力用のストリームを介して実現されます。入出力用のストリームを取得するには次に示すSocketクラスのメソッドを用います。

メソッド
説明
public OutputStream getOutputStream()

送信用のストリームを取得します。

public InputStream getInputStream()
受信用のストリームを取得します。

↑このページの先頭へ

こちらもチェック!

PR
  • XMLDB.jp