ホームページ  >  記事  >  Java  >  Java でのソケット設定接続タイムアウトのコード実装の詳細な説明

Java でのソケット設定接続タイムアウトのコード実装の詳細な説明

怪我咯
怪我咯オリジナル
2017-07-02 10:17:171780ブラウズ

日常の接続において、タイムアウトが長すぎると、開発中のテストに影響します。次の記事では、Java でのソケットの接続タイムアウトを設定するためのコードを紹介します。必要な方は参照してください。一緒にやってみましょう。

はじめに

Java のソケットが指定された IP とポートでホストに接続できない場合、通常の状況では、接続から不確実な期間が発生することは誰もが知っています。 IOException の発生までの期間は、いわゆるタイムアウト期間です。タイムアウト期間が長すぎると、コードが製品になった場合に、ユーザー エクスペリエンスに大きく影響します。この期間?詳細な導入を見てみましょう:

Socket クラスはメソッドを提供します:

public void connect(SocketAddress endpoint, int timeout) 
    throws IOException

パラメータ:


    エンドポイント – SocketAddress はホスト IP とポートを提供します
  • タイムアウト – 使用されますミリ秒単位のタイムアウト値。
  • このメソッドは、Socket を指定されたサーバーに接続し、タイムアウト値を設定するために使用されます。タイムアウト値を 0 より大きく設定すると、タイムアウトが発生すると例外がスローされ、タイムアウト値を 0 に設定すると接続が無限にタイムアウトします。

したがって、上記のメソッドを使用して Socket 接続のタイムアウト時間を設定できます。 コードは次のとおりです。

// 设置ip和prot
String ip = "127.0.0.1";
int port = 8888;
// 创建Socket
Socket client = new Socket();
// 设置发送地址
SocketAddress addr = new InetSocketAddress(ip, port);
// 超时1秒,并连接服务器
client.connect(addr, 1000);
上記の 2 つのクラスは、Socket 接続アドレスを作成するために使用されます。

抽象クラス

、後者は前者のサブクラスであり、アドレスは

構築メソッド

を通じて作成されます:

public InetSocketAddress(String hostname, int port)
パラメータ:


hostname – ホスト名。 ip

  • port – ポート番号

  • さらに、InetSocketAddress は、ローカル IP を取得する一般的に使用される方法など、いくつかのネットワーク関連のメソッドも提供します:

    public final InetAddress getAddress()
  • このメソッドは、InetAddress を返し、次のように、InetAddress メソッドを通じて IP を取得します。
public String getHostAddress()

次に、ローカル IP を取得します。 コードは次のとおりです。

// client就是上面创建的Socket
String host_ip = client.getAddress().getHostAddress();

以上です。

以上がJava でのソケット設定接続タイムアウトのコード実装の詳細な説明の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。