JavaのSocketは接続タイムアウトのコード共有を設定します。


前言
JavaのSocketは指定されたIPとPortのホストに接続できないと、IOExceptionの異常を抛り出します。通常は接続からIOExceptionが現れるまで、一定の時間がかかります。つまり、タイムアウトが長いと、開発時にテストに影響があります。コードが製品になったら、ユーザーの体験に非常に影響します。この時間はどう設定すればいいですか?詳しく紹介します。
ソケットのクラスは、方法を提供する:

public void connect(SocketAddress endpoint, int timeout) 
    throws IOException
パラメータ:
  • endpoint C SocketAddressはホストIPとポート
  • を提供する。
  • timeout Cで使用するタイムアウト値(ミリ秒単位)。
  • この方法は、指定されたサーバにソケットを接続し、タイムアウト値を設定するためのものです。タイムアウト値が0より大きい場合は、タイムアウト後に異常を投げて接続を停止し、タイムアウト値を0にすると無限タイムアウトします。
    したがって、上記の方法を使用して、ソケット接続のタイムアウト時間を設定することができます。コードは以下の通りです。
    
    //   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);
    上記のSocketAddresとInetSocketAddressを説明します。これらの2つはソケット接続アドレスを作成するために使われます。前者は抽象類で、後者は前者のサブクラスです。構造方法によって住所を作成します。
    
    public InetSocketAddress(String hostname, int port)
    パラメータ:
  • Hostname Cホスト名は、ip
  • であっても良いです。
  • port C端スローガン
  • また、InetSocketAddressは、本機のIPを頻繁に取得する方法など、ネットワーク関連の方法を提供している。
    
    public final InetAddress getAddress()
    この方法は、InetAddressを返し、次にInetAddresの方法でIPを取得する。
    
    public String getHostAddress()
    本機のIPコードを取得すると、
    
    // client       Socket
    String host_ip = client.getAddress().getHostAddress();
    じゃ、ここにしましょう。
    締め括りをつける
    以上はこの文章の全部の内容です。本文の内容は皆さんの学習や仕事に一定の助けをもたらすことを望んでいます。もし疑問があれば、メッセージを残して交流してください。ありがとうございます。