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