2012-04-26 11 views
1

私のソケットの例外ブロックで、アンドロイドプログラムで例外が発生したときに何かを印刷しようとしています。"78.137.18"が無効なIPアドレスとして拒否されないのはなぜですか?

私は無効なIPアドレスを与えても、私の例外は呼び出されていません。

 try{ 
     SocketAddress socketAddress = new InetSocketAddress("78.137.18" , 8364); 
     } 
     catch (Exception e) 
     { 
     System.out.println("ERROR"); 
     } 

答えて

3

実際には有効なIPアドレスです。

[email protected]:~$ perl -nle 'use Socket; print inet_ntoa(inet_aton($_))' 
78.137.18 
78.137.0.18 

InetSocketAddressのコンストラクタも、ホスト名を受け入れます。

これらのアドレスを明確に拒否したい場合は、アドレス文字列をチェックするためのコードを書く必要があります。

+0

私は確かにダウンしているIPアドレスに接続しようとしています。それでも、例外は呼び出されていません。アイデアはありますか? – madCode

1

InetSocketAddressは、ソケットアドレスを表すオブジェクトを作成します。ホスト名をIPアドレスに解決しますが、指定されたアドレスには接続もバインドもしません。これが例外ではない理由です。アドレスは構文的に正しいものであり、接続の試行は行われないため、例外をスローする理由はありません。

+0

私は接続しようとしましたが、まだ私は例外を取得していませんでした。しかし今、私はtimeoutExceptionを持つことで解決しました。 – madCode

関連する問題