1

Android プログラムで例外が発生したときに、ソケットの例外ブロックで何かを印刷しようとしています。

しかし、無効な IP アドレスを指定しても、例外は呼び出されません。

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

2 に答える 2

3

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

mslade@mickpc:~$ perl -nle 'use Socket; print inet_ntoa(inet_aton($_))'
78.137.18 
78.137.0.18

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

これらのアドレスを明確に拒否したい場合は (本当によろしいですか?)、おそらく正規表現を使用して、アドレス文字列をチェックするコードを作成する必要があります。

于 2012-04-26T07:54:18.397 に答える
1

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

于 2012-04-26T08:01:50.290 に答える