免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 2959 | 回复: 7
打印 上一主题 下一主题

关于TELNET的问题 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2005-04-25 12:05 |只看该作者 |倒序浏览
我在JAVA中如何用返回信息判断TELNET 192。168。0。1这个网关是否通。
正在连接到192.168.0.1...无法打开到主机的连接 在端口 23 : 连接失败
ldkdkd name switch (cisco 4006)
Unauthorized Access  Prohibited and will be prosecuted


User Access Verification

Password:
下面是通的

论坛徽章:
0
2 [报告]
发表于 2005-04-26 03:31 |只看该作者

关于TELNET的问题

为什么不用java的socket直接连接telnet的服务器呢?为什么还要调用telnet再读取输入输出来兜圈子呢?

论坛徽章:
0
3 [报告]
发表于 2005-04-26 08:32 |只看该作者

关于TELNET的问题

主要是我只关心它通与不通就行了。

论坛徽章:
0
4 [报告]
发表于 2005-04-26 08:49 |只看该作者

关于TELNET的问题

  1.     boolean serverup = false;
  2.     Socket sock = null;
  3.     try {
  4.         InetAddress addr = InetAddress.getByName("server_name_or_ip");
  5.         int port = 23;
  6.         SocketAddress sockaddr = new InetSocketAddress(addr, port);
  7.    
  8.         // Create an unbound socket
  9.         sock = new Socket();
  10.    
  11.         // This method will block no more than timeoutMs.
  12.         // If the timeout occurs, SocketTimeoutException is thrown.
  13.         int timeoutMs = 2000;   // 2 seconds
  14.         sock.connect(sockaddr, timeoutMs);
  15.         serverup = true
  16.     } catch (UnknownHostException e) {
  17.     } catch (SocketTimeoutException e) {
  18.     } catch (IOException e) {
  19.     }finally{
  20.         try{
  21.         sock.close();
  22.        }catch(Throwable t){
  23.          //ignore this
  24.        }
  25.     }
复制代码

论坛徽章:
0
5 [报告]
发表于 2005-04-26 09:45 |只看该作者

关于TELNET的问题

谢谢

论坛徽章:
0
6 [报告]
发表于 2005-04-26 10:05 |只看该作者

关于TELNET的问题

我现在想建一个地址数组如:{192.168.0.1,192.168.0.6,192.168.1.1,192.168.2.1,192.168.3.1}
这样能实现吗?具体说一下方法谢谢了

论坛徽章:
0
7 [报告]
发表于 2005-04-27 03:13 |只看该作者

关于TELNET的问题

那简单啊,先把测试功能写成一个函数

  1. import java.io.IOException;
  2. import java.net.InetSocketAddress;
  3. import java.net.Socket;
  4. import java.util.logging.Logger;

  5. public class SocketTester {
  6.        
  7.         public static Logger logger;
  8.        
  9.         static {
  10.                 logger = Logger.getAnonymousLogger();
  11.         }
  12.        
  13.         public static boolean hostTester(String host)
  14.         {
  15.                 boolean b_rtn = false;
  16.                 Socket s = null;
  17.                 InetSocketAddress addr = new InetSocketAddress(host, 23);
  18.                 s = new Socket();
  19.                 try {
  20.                         s.connect(addr, 2000);
  21.                         b_rtn = true;
  22.                 } catch (IOException e) {
  23.                         //其他的exception都是IOException的子类,如果不讲究,就可以这样略过了
  24.                         logger.config(e.getMessage());
  25.                 }
  26.                
  27.                 return b_rtn;
  28.         }
  29. }
复制代码


然后用数组或者列表,个人倾向喜欢用列表,因为长度可变,操作灵活

List list = new LinkedList();
list.add("192.168.0.1";
list.add("192.168.0.6";
...

添加完以后,就开始逐个判断

for(int i=0;i<list.size();i++)
{
    boolean serverlive = SocketTester.hostTester((String)list.get(i));
}

论坛徽章:
0
8 [报告]
发表于 2005-04-27 07:41 |只看该作者

关于TELNET的问题

perryhg   太感谢你了老大
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP