欧美日韩不卡一区二区三区,www.蜜臀.com,高清国产一区二区三区四区五区,欧美日韩三级视频,欧美性综合,精品国产91久久久久久,99a精品视频在线观看

java語言

Java中Socket設(shè)置連接超時(shí)的代碼

時(shí)間:2025-03-04 12:50:18 java語言 我要投稿
  • 相關(guān)推薦

Java中Socket設(shè)置連接超時(shí)的代碼

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

  Socket的類提供了一個(gè)方法:

  public void connect(SocketAddress endpoint, int timeout)

  throws IOException

  參數(shù):

  endpoint – SocketAddress 提供主機(jī)IP和Port

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

  該方法用于將Socket連接到指定的服務(wù)器,并設(shè)定一個(gè)超時(shí)值。超時(shí)值設(shè)定為大于0時(shí),當(dāng)超時(shí)后,就會(huì)拋出異常,停止連接,而超時(shí)值設(shè)為0將無限超時(shí)。

  因此,使用上述方法就可以設(shè)置Socket連接的超時(shí)時(shí)長了,代碼如下:

  // 設(shè)置ip和prot

  String ip = "127.0.0.1";

  int port = 8888;

  // 創(chuàng)建Socket

  Socket client = new Socket();

  // 設(shè)置發(fā)送地址

  SocketAddress addr = new InetSocketAddress(ip, port);

  // 超時(shí)1秒,并連接服務(wù)器

  client.connect(addr, 1000);

  解釋一下上面的SocketAddress和InetSocketAddress,這兩個(gè)類用于創(chuàng)建Socket連接地址,前者是抽象類,后者是前者的子類,通過構(gòu)造方法來創(chuàng)建地址:

  public InetSocketAddress(String hostname, int port)

  參數(shù):

  hostname – 主機(jī)名,也可以是ip

  port – 端口號(hào)

  另外,InetSocketAddress還提供了一些與網(wǎng)絡(luò)相關(guān)的方法,比如常用的獲取本機(jī)IP的方法:

  public final InetAddress getAddress()

  這個(gè)方法會(huì)返回一個(gè)InetAddress,然后通過InetAddress的方法獲取IP,如下:

  public String getHostAddress()

  那么獲取本機(jī)IP的代碼就是:

  // client就是上面創(chuàng)建的Socket

  String host_ip = client.getAddress().getHostAddress();

  那么,就到這里吧!

【Java中Socket設(shè)置連接超時(shí)的代碼】相關(guān)文章:

Java數(shù)據(jù)庫連接代碼集合08-31

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

java中通用的線程池實(shí)例代碼08-27

java常用代碼07-07

JAVA代碼的基本格式07-22

Java代碼復(fù)用規(guī)則06-06

JAVA代碼優(yōu)化總結(jié)09-23

Java for循環(huán)的寫法代碼08-01

java代碼的基本要點(diǎn)08-01