连接检测SSH服务是否正常工作
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.InterruptedIOException;
import java.net.ConnectException;
import java.net.InetAddress;
import java.net.NoRouteToHostException;
import java.net.Socket;
import java.net.UnknownHostException;
public class TestSSH ...{
public static void main(String[] args)...{
int retry = 1;
int timeout = 3000;
// Port
//
int port = 22;
String strBannerMatch = "SSH";
// Get the address instance.
//
InetAddress ipv4Addr = null;
try ...{
ipv4Addr = InetAddress.getByName("fedora.unix-center.net");
} catch (UnknownHostException e1) ...{
// TODO Auto-generated catch block
e1.printStackTrace();
}
// Give it a whirl
//
int serviceStatus = -1;
long responseTime = -1;
for (int attempts = 0; attempts <= retry && serviceStatus != 1; attempts++) ...{
Socket socket = null;
try ...{
create a connected socket
long sentTime = System.currentTimeMillis();
socket = new Socket();
socket.connect(new InetSocketAddress(ipv4Addr, port), timeout);
socket.setSoTimeout(timeout);
System.out.println("SshMonitor: connected to host: " + ipv4Addr + " on port: " + port);
// We’re connected, so upgrade status to unresponsive
serviceStatus = -2;
if (strBannerMatch == null || strBannerMatch.equals("*")) ...{
serviceStatus = 1;
break;
}
BufferedReader rdr = new BufferedReader(new InputStreamReader(socket.getInputStream()));
// Tokenize the Banner Line, and check the first
// line for a valid return.
String response = rdr.readLine();
responseTime = System.currentTimeMillis() - sentTime;
if (response == null)
continue;
System.out.println("poll: banner = " + response);
System.out.println("poll: responseTime= " + responseTime + "ms");
if (response.indexOf(strBannerMatch) > -1) ...{
serviceStatus = 1;
} else
serviceStatus = -1;
} catch (Exception e) ...{
e.printStackTrace();
} finally ...{
try ...{
// Close the socket
if (socket != null)
socket.close();
} catch (IOException e) ...{
e.printStackTrace();
}
}
}
}
}
相关专题
- Java远程通讯可选技术及原理 (145次浏览)
- Java基础知识:初学者必须理解的六大问题 (76次浏览)
- 九个非常值得一看的MySpace程序 (72次浏览)
- Java初学者必须理解的六个大问题 (70次浏览)
- 微软企业级平台呼之欲出 英雄由“此”诞生 (66次浏览)
- Java基础知识:谈谈简单Hibernate入门 (58次浏览)
- Eclipse开发经典教程:SWT事件 (50次浏览)
- struts验证框架开发详解 (48次浏览)
- Java入门-浅析Java学习从入门到精通 (47次浏览)
- 关于提高自己水平的十大技术 (47次浏览)



