映画のエンドロール観る派?観ない派?

ただいま、プログラムの勉強の一貫として、ポートスキャンツールを作成しています。とは、いっても全然大それたものではなく、

***************************
try{
new Socket(host,port);
System.out.println("port - " +"OPEN");
}catch(UnknowHostException uke){
System.out.pritnln("Host Unknow");
}catch(IOException ioe){
System.out.println("port - "+"CLOSE");
}
****************************
のように、エラーを吐きださせる事でポートが閉じてるかを調べるだけです。
しかし、この場合、エラーを投げつけるので、処理がかなり遅いものとなってしまいます。スレッド処理で並列化をすることも考えたのですが、やはり遅いです。他に速度をあげるいい方法はないものでしょうか・・・

それと、バナー(空いてるポートの走ってるプログラムとバージョン)を調べる方法がわかりません。というより、どういう仕組でわかるようになっているのでしょうか?

どうか宜しくお願いします。

A 回答 (1件)

SO_TIMEOUTを指定して一定時間レスポンスがなければ早々に切り上げれば


いいのではないでしょうか。
Socket#setSoTimeout(int timeout)でしょうかね。
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!


おすすめ情報