当我们通过IP和端口连接设备时,有时候为了用户体验,我们急需在几秒内给到用户回复信息,而这些就需要一些方法来判断:
public void connect(String server, int servPort) throws IOException,UnknownHostException, SocketTimeoutException {
InetAddress ad = InetAddress.getByName(server);
boolean state = ad.isReachable(1000);//测试是否可以达到该地址 ,判断ip是否可以连接 1000是超时时间
if(state){
System.out.println("连接成功" + ad.getHostAddress());
} else{
System.out.println("连接失败");
throw new IOException();
//1.创建一个Socket实例:构造函数向指定的远程主机和端口建立一个TCP连接
//socket = new Socket(server, servPort);
socket = new Socket();
socket.setReceiveBufferSize(8192);
socket.setSoTimeout(1000);// socket.setSoTimeout(2000);
SocketAddress address = new InetSocketAddress(server, servPort);
try {
socket.connect(address,1000);//1.判断ip、端口是否可连接
} catch (IOException e) {
System.out.println("新建一个 socket server "+ servPort+"连接失败");
throw new IOException();
System.out.println("新建一个socket");
System.out.println("Connected to server... sending echo string");
//2. 通过套接字的输入输出流进行通信:一个Socket连接实例包括一个InputStream和一个OutputStream,它们的用法同于其他Java输入输出流。
in = socket.getInputStream();
out = socket.getOutputStream();
isalreadyconnected=1;
//connect1( server, servPort) ;
}
出处:https://www.cnblogs.com/wth1129/p/6846723.html
使用的是
java
自带的
Socket
类进行检测
端口
号
是否
可用,两个代码,一个是检测的工具类,另一个是调用工具类传递相关的的参数;
请求的结果:(当前
Ip
可用,
端口
号不可用)
二、检测用的工具类
import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;
import
java
.i...
public static boolean ping
Ip
(String
ip
) throws UnknownHostException, IOException {
//能ping通放回true 反之 false 超时时间 3000毫秒
return InetAddress.getByName(
ip
).isReachable(5000);
public static boolean telnetport(String
ip
, Integer port).
1 public class test implements Runnable {
2 //private static String host="210.39.3.164";
3 private static int i=0;
4 static Da...
public static boolean isHostConnectable(String host, int port) {
Socket
socket
= new
Socket
();
try {
socket
.connect(new Inet
Socket
Addres...
转自:http://www.csdn.net/article/2012-11-28/2812264-
Java
-network-connectivity-test-several-m
摘要:本文列举集中典型的场景,介绍了通过
Java
网络编程接口
判断
机器之间
可达
性的几种方式。在实际应用中,可以根据不同的需要选择相应的方法稍加修改即可。对于更加特殊的需求,还可以考虑通过JNI的方法直接调用系统API来
import
java
.io.IOException;
import
java
.net.HttpURLConnection;
import
java
.net.Inet
Socket
Address;
import
java
.net.
Socket
;
import
java
.net.URL;
* @Descr
ip
tion
测试
ip
及
端口
连通性
* @ClassName NetUtils
* @Author
import
java
.io.IOException;
import
java
.net.InetAddress;
import
java
.net.Inet
Socket
Address;
import
java
.net.
Socket
;
import
java
.net.UnknownHostException;
public class TestI...
//
socket
验证异常
public static boolean isHostConnectable(String host, int port) {
Socket
socket
= new
Socket
();
try {
socket
.connect(new Inet
Socket
Address(host, port));
telnet命令如果只指定
ip
,将默认
连接
到对端的23
端口
。
如果指定了
端口
,则
连接
到对应的
端口
。
telnet
ip
port 命令可以用来
测试
服务器某个
端口
是否
打开。
C:\Users\Administrator>telnet www.baidu.com 80
如果
端口
是开放的,将看到空白屏幕