使用java.net包中的Socket(“插座”),进行对要访问的另一端(可以是TCPIP地址)进行尝试创建链接,如果异常,则可判断为不能访问。
示例代码:
import java.io.IOException; import java.net.InetSocketAddress; import java.net.Socket; import lotus.domino.*;public class myClass{ public static void main(String argv[]) { //默认为正常通信 boolean isOpen = true; //百度的IP String host = "61.135.169.121"; //分别模拟79至82的四个端口号 for(int i=79;i<83;i++){ isOpen = remoteIPIsOpen(host,i); System.out.println("地址:"+host+"端口:"+i+" 是否正常通信:"+isOpen); } } /** * 判断远程地址是否正常通信 * @ip:远程地址ip * @prot:远程地址端口 */ public boolean remoteIPIsOpen(String ip,int port){ Socket connect = null; boolean isOpen = true; try { connect = new Socket(); connect.connect(new InetSocketAddress(ip, port),100); isOpen = connect.isConnected(); } catch (IOException e) { isOpen = false; }finally{ try { connect.close(); } catch (IOException e) { e.printStackTrace(); } } return isOpen; }}
以上是对百度IP不同的几个端口进行了尝试链接,测试结果:
地址:61.135.169.121端口:79 是否正常通信:false
地址:61.135.169.121端口:80 是否正常通信:true地址:61.135.169.121端口:81 是否正常通信:false地址:61.135.169.121端口:82 是否正常通信:false