请教一个socket问题?
小弟刚接触网络编程不久,我想开发一个java程序探测远程系统的service运行状态,假设都是在TCP协议下,我从客户端建一个socket连接呼叫远程主机,能够得到反馈表示该端口的服务是开的,现在我想问如何知道该端口是运行的什么service?怎么获得它的名称?谢谢! 问题点数:20、回复次数:7Top
1 楼LoveJ2ee_Frisk(小月又欠)回复于 2004-12-02 20:41:35 得分 10
Socket client1;
try {
client1 = new Socket("localhost",9999);//连接到本地的9999端口
System.out.println("已与服务器连接");
}catch(Exception ee){
System.out.println("无法连接服务器请检查网络");
System.exit(0);
}Top
2 楼lightEIF(苍鹰)回复于 2004-12-02 20:54:58 得分 10
写个SERVER程序,打开9999端口,然后一直监听此端口,如果有客户连接这个端口,就发一个响应。Top
3 楼quincy2001(小丁)回复于 2004-12-02 21:15:15 得分 0
但这只是建立连接,我已经连接了,我是想知道能不能通过连接获得服务器上服务的名称,因为每个有响应的端口都有一个服务在运行,我想知道这个程序的名称,谢谢Top
4 楼LoveJ2ee_Frisk(小月又欠)回复于 2004-12-02 22:50:22 得分 0
InetAddress ss = client1.getInetAddress();
String str = ss.getHostName();
System.out.println("地址:" + str);
试试看行不行。Top
5 楼quincy2001(小丁)回复于 2004-12-02 23:05:14 得分 0
但这样只是得到机器名称,不是服务名称Top
6 楼xuan9932()回复于 2004-12-03 03:51:38 得分 0
什么叫服务名称啊,如果连接成功了,服务端传个STRING 传给客户端不就行了吗?Top
7 楼quincy2001(小丁)回复于 2004-12-05 16:04:15 得分 0
也许我没表述清楚,我本来想实现的,单通过客户端发送连接请求,通过服务器对应端口的回应,获得服务器端应用程序的名称,当前状况使我不能对服务器操作,就是我不能创建服务器端程序,所以,现在看来,这是不可能实现的Top




