日期:2014-05-20  浏览次数:21090 次

Java怎么监听远程服务器中的某个端口是否开启
大家好,我是用的这个代码。
SocketConnFuntion scf=new SocketConnFuntion();
boolean c=scf.testFeel(Ip, SocketPort);
if(c==true){
setFeel("开启");
}else if(c==false){
setFeel("关闭");
}


try {
socket = new Socket(ip, Integer.valueOf(SocketPort));
return true;
} catch (Exception e) {
return false;
}

这样可以,但是效率不好,因为我要监听5个端口,socket要去连接花费时间,如果开启状态很快就好了,但是关闭状态的话,程序基本卡死了。。而且我这个还需要显示的界面上,所以请问有没有高效率的办法啊。谢谢帮忙。给出满意答案的99分都给你。
好像还有一中是通过java执行cmd命令来实现。这个效率更不理想。。

------解决方案--------------------
Socket s = new Socket();
SocketAddress add = new InetSocketAddress('www.163.com',80);
s.connect(add,5000);

以5秒超时进行server连接,超过5秒连接不成功则抛出异常