编写检测ip端口是否存在的工具类,解决异常ConnectException: failed to connect to /127.0.0.1 (port 12345): connect faile
2014-12-10 02:29
681 查看
今天写一个http通信的功能,需求是,灵犀测试工具向灵犀客户端发送http协议的数据,逻辑是当启动灵犀的Activity后,等待3秒就向指定端口发送数据,这里的先等待的原因是:灵犀的10001端口并不是在启动Activity后立即开启,而是过几秒才开启,这里的3秒是我估算的,因此不合适
关于这个异常,我纠结了一晚上,不知道哪出的问题,只好随便写一个端口,当报了同样的错误信息后,我才意识到是因为端口不存在导致的,后来只好做了一个检测端口是否存在的工具类:
关于这个异常,我纠结了一晚上,不知道哪出的问题,只好随便写一个端口,当报了同样的错误信息后,我才意识到是因为端口不存在导致的,后来只好做了一个检测端口是否存在的工具类:
/** * 监测指定地址是否可以连接(重载函数) * @param ip IP地址 * @param port 端口号 * @param timeOut 尝试连接的超时时间(单位:毫秒) * @param interval 检测间隔(单位:毫秒) * @author cuixingwang * @date 2014-12-10 上午1:58:05 */ public static boolean checkPort(String ip, int port,long timeOut,long interval){ long beginTime=System.currentTimeMillis(); InetSocketAddress inetSocketAddress=new InetSocketAddress(ip,port); Socket socket=null; while(true){ try { //必须每次都new一个Socket,否则如果第一连接失败,即便之后开启了端口,也不会连接上 socket = new Socket(); socket.connect(inetSocketAddress); Log.i(TAG,"地址:"+ip+":"+port+"可用"); //连接成功后先关闭资源,否则再向该端口发数据,速度会非常慢 socket.close(); return true; } catch (IOException e) { Log.e(TAG,"未检测到地址:"+ip+":"+port); //注释连接端口失败的异常 long currentTime=System.currentTimeMillis(); if(currentTime-beginTime>timeOut){ //超时则认为连接失败 return false; } try { Thread.sleep(interval); } catch (InterruptedException e2) { e2.printStackTrace(); } } } }
相关文章推荐
- android-java.net.ConnectException: failed to connect to localhost/127.0.0.1 (port 8080)解决方法
- 解决 git push Failed to connect to 127.0.0.1 port 45463: 拒绝连接
- 解决 git push Failed to connect to 127.0.0.1 port 45463: 拒绝连接
- 解决 git push Failed to connect to 127.0.0.1 port 38462: Connection refused
- android-java.net.ConnectException: failed to connect to localhost/127.0.0.1 (port 8080)解决方法
- 解决git clone时,出现Failed to connect to 127.0.0.1 port 46759: 拒绝连接的问题
- 解决连接mongoDB出现问题:MongoDB : Failed to connect to 127.0.0.1:27017, reason: errno:61 Connection refused
- 解决Nginx的connect() to 127.0.0.1:8080 failed (13: Permission denied) while connect
- 使用叶神模拟器无法访问本机服务器的问题(报错:java.net.ConnectException: failed to connect to /127.0.0.1 (port 5000) )
- 解决负载均衡中遇到Failed to connect to 10.3.3.173 port 443: No route to host
- Selenium2学习-038-firefox、webdriver版本不对称问题解决:org.openqa.selenium.firefox.NotConnectedException: Unable to connect to host 127.0.0.1 on port 7055
- 通过端口1433连接到主机127.0.0.1的 TCP/IP 连接失败,错误:“connect timed out”的解决方法
- 解决Nginx的connect() to 127.0.0.1:8080 failed (13: Permission denied) while connect
- 解决Nginx的connect() to 127.0.0.1:8080 failed (13: Permission denied) while connect
- Android模拟器访问服务器failed to connect to /(主机服务端ip) (port 8080) after 5000ms
- 【git使用】Failed to connect to 127.0.0.1 port 1080: Connection refused
- 解决github unable to access 'https://github.com/...: Failed to connect to github.com port 443
- webdriver Unable to connect to host 127.0.0.1 on port 7055 解决方法
- java.net.ConnectException: failed to connect to /127.0.1.1 (port 8080)的解决办法
- 【LR11】Error -27796: Failed to connect to server"server:port": [10060] Connection timed out错误解决办法