ホームページ  >  記事  >  Java  >  Java でのソケットの接続タイムアウトの設定に関するコード ケース分析

Java でのソケットの接続タイムアウトの設定に関するコード ケース分析

黄舟
黄舟オリジナル
2017-06-18 09:58:471725ブラウズ

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

はじめに

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

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

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

Parameters:


    endpoint – 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);

上記の SocketAddress と InetSocketAddress の説明。これらの 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 までご連絡ください。