<delect id="sj01t"></delect>
  1. <em id="sj01t"><label id="sj01t"></label></em>
  2. <div id="sj01t"></div>
    1. <em id="sj01t"></em>

            <div id="sj01t"></div>
            java語言

            Java中Socket設置連接超時的代碼

            時間:2025-03-04 12:50:18 java語言 我要投稿
            • 相關推薦

            Java中Socket設置連接超時的代碼

              大家都知道Java的Socket如果連接不到指定IP和Port的主機,就會拋出IOException異常,而通常情況下,從連接到出現IOException會有一段不定的時長,就是所謂的超時時長,如果超時時長過長,在開發時會影響測試,如果代碼成了產品,又會非常的影響用戶體驗,那么要怎么設置這個時長呢?今天百分網小編為大家整理的Java中Socket設置連接超時的代碼,僅供學習參考,歡迎大家閱讀瀏覽!

              Socket的類提供了一個方法:

              public void connect(SocketAddress endpoint, int timeout)

              throws IOException

              參數:

              endpoint – SocketAddress 提供主機IP和Port

              timeout – 要使用的超時值(以毫秒為單位)。

              該方法用于將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,這兩個類用于創建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中Socket設置連接超時的代碼】相關文章:

            Java數據庫連接代碼集合08-31

            Dreamweaver代碼中的空連接如何批量刪除09-02

            java中通用的線程池實例代碼08-27

            java常用代碼07-07

            JAVA代碼的基本格式07-22

            Java代碼復用規則06-06

            JAVA代碼優化總結09-23

            Java for循環的寫法代碼08-01

            java代碼的基本要點08-01

            <delect id="sj01t"></delect>
            1. <em id="sj01t"><label id="sj01t"></label></em>
            2. <div id="sj01t"></div>
              1. <em id="sj01t"></em>

                      <div id="sj01t"></div>
                      黄色视频在线观看