Socketの概要


クライアント/サーバ側の通信モードでは、クライアントはサーバに接続されたSocket(ソケット)を自発的に作成し、サーバ側はクライアントから送信されたSocketリンク要求を受信し、サーバセグメントはクライアントリンク用のSocketも作成し、Socketはサーバ側とクライアントセグメントの通信のトランシーバと見なすことができる.サーバ側もクライアント側もSocketでデータを送受信します.
Socketオブジェクトを構築するとき、Socketのほとんどのメソッド(パラメトリック関数なしを除く)はサーバへのリンクを確立しようとします.リンクが成功したらSocketオブジェクトに戻り、成功しなければ例外を放出します.
次のプログラムは、サーバホストの1-1024ポートがサーバによって傍受されているかどうかをスキャンします...
import java.io.IOException;
import java.net.Socket;

public class PortScanner {
	public static void main(String args[]) {
		String host = "127.0.0.1";
		if (args.length > 0) {
			host = args[1];
		}
		new PortScanner().scan(host);
	}

	public void scan(String host) {
		Socket socket = null;
		for (int port = 1; port < 1024; port++)
			try {
				socket = new Socket(host, port);
				System.out.println("There is a server on port " + port);
			} catch (IOException e) {
				System.out.println("Can't connect to port" + port);
			} finally {
				try {
					if (socket != null)
						socket.close();
				} catch (IOException e) {
					e.printStackTrace();
				}
			}

	}
}