zoukankan      html  css  js  c++  java
  • java中判断网络是否连通

      前段时间在项目中做了一个发送短信的功能,直到项目上线后,才发现了自己菜鸟的本质——考虑问题的不周全。发送短信,在我们的系统中会自动生成短信内容并且构造好联系人、电话等一条字段,插入到另外一个地方的数据库,由他们连接运营商发送短信至用户。但使用中有一段时间,我这边的系统显示短信生成正常,而用户却没有收到短信,在百分百确定代码没有问题后,咨询了一个老鸟,才知道,发短信前是需要判断一下那边的IP是否能ping通的,如果ping不同,你这边的短信插不过去,系统就会一直等待,造成延迟。

      从老鸟那请教了一下,原来只需要加几行代码,就能完成这个工作,豁然开朗之际,把我的喜悦分享给大家。

      使用中发现,如果需要判断系统连接一个url是否正常,试用URL中的openStream()方法是非常便捷的。

     1 package com.cjj.client;
     2 
     3 import java.io.IOException;
     4 import java.io.InputStream;
     5 import java.net.InetAddress;
     6 import java.net.URL;
     7 
     8 public class InetJavaTest {
     9     private static String remoteInetAddr = "59.231.36.59";//需要连接的IP地址
    10      /**
    11      * 传入需要连接的IP,返回是否连接成功
    12      * @param remoteInetAddr
    13      * @return
    14      */
    15     public static boolean isReachable(String remoteInetAddr) {
    16         boolean reachable = false; 
    17         try {   
    18             InetAddress address = InetAddress.getByName(remoteInetAddr); 
    19             reachable = address.isReachable(5000);  
    20             } catch (Exception e) {  
    21             e.printStackTrace();  
    22             }  
    23         return reachable;
    24     }
    25     
    26     public static void main(String[] args) {
    27         URL url = null;
    28         Boolean bon = false;
    29         try {
    30         url = new URL("http://baicu.com/");
    31         InputStream in = url.openStream();//打开到此 URL 的连接并返回一个用于从该连接读入的 InputStream
    32         System.out.println("连接正常");
    33         in.close();//关闭此输入流并释放与该流关联的所有系统资源。
    34         } catch (IOException e) {
    35         System.out.println("无法连接到:" + url.toString());
    36         }
    37         bon = isReachable(remoteInetAddr);
    38         System.out.println("pingIP:" + bon);
    39     }
    40 }
  • 相关阅读:
    如何学习编程语言?
    spring AOP(1)
    一个老工程师给年轻工程师的十大忠告!!!
    跳楼时看到的[转]
    Python distribution打包&安装流程
    php rsa类的一个写法
    yii数据表关联操作
    JIRA是个好工具
    Yii CModel.rules() 方法 validate预定义完整列表
    Python Challenge挑战一下
  • 原文地址:https://www.cnblogs.com/moon-jiajun/p/3454576.html
Copyright © 2011-2022 走看看