• 締切済み

ポートスキャンツールについて

ただいま、プログラムの勉強の一貫として、ポートスキャンツールを作成しています。とは、いっても全然大それたものではなく、 *************************** 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"); } **************************** のように、エラーを吐きださせる事でポートが閉じてるかを調べるだけです。 しかし、この場合、エラーを投げつけるので、処理がかなり遅いものとなってしまいます。スレッド処理で並列化をすることも考えたのですが、やはり遅いです。他に速度をあげるいい方法はないものでしょうか・・・ それと、バナー(空いてるポートの走ってるプログラムとバージョン)を調べる方法がわかりません。というより、どういう仕組でわかるようになっているのでしょうか? どうか宜しくお願いします。

みんなの回答

  • KaZtoYou
  • ベストアンサー率73% (11/15)
回答No.1

SO_TIMEOUTを指定して一定時間レスポンスがなければ早々に切り上げれば いいのではないでしょうか。 Socket#setSoTimeout(int timeout)でしょうかね。

関連するQ&A