|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
市场分额,java比asp高一点,因为C#是仿照java开发的,所以哦C#能做的java都能做到,但是java能做的,C#不一定都能做到。毕竟是抄袭吗。
概述
在收集编程中,偶然我们必要判别两台呆板之间的连通性,大概说是一台呆板到另外一台呆板的收集可达性。在体系层面的测试中,我们经常用Ping命令来做考证。只管Java供应了对照丰厚的收集编程类库(包含在使用层的基于URL的网络资本读取,基于TCP/IP层的Socket编程,和一些帮助的类库),可是没有间接供应相似Ping命令来测试收集连通性的办法。本文将先容怎样经由过程Java已有的API,编程完成各类场景下两台呆板之间的收集可达性判别。鄙人面的章节中,我们会利用Java收集编程的一些类库java.net.InetAddress和java.net.Socket,经由过程例子注释怎样摹拟Ping命令。
复杂判别两台呆板的可达性
一样平常情形下,我们仅仅必要判别从一台呆板是不是能够会见(Ping)到另外一台机器,此时,能够复杂的利用Java类库中java.net.InetAddress类来完成,这个类供应了两个办法探测远程呆板是不是可达
booleanisReachable(inttimeout)//测试地点是不是可达
booleanisReachable(NetworkInterfacenetif,intttl,inttimeout)
//测试地点是不是可达.
复杂说来,上述办法就是经由过程远端呆板的IP地点构造InetAddress对象,然后挪用其isReachable办法,测试挪用呆板和远端呆板的收集可达性。注重到远端呆板大概有多个IP地点,因此大概要迭代的测试一切的情形。
清单1:复杂判别两台呆板的可达性- voidisAddressAvailable(Stringip){
- try{
- InetAddressaddress=InetAddress.getByName(ip);//pingthisIP
- if(addressinstanceofjava.net.Inet4Address){
- System.out.println(ip+"isipv4address");
- }else
- if(addressinstanceofjava.net.Inet6Address){
- System.out.println(ip+"isipv6address");
- }else{
- System.out.println(ip+"isunrecongized");
- }
- if(address.isReachable(5000)){
- System.out.println("SUCCESS-ping"+IP+"withnointerfacespecified");
- }else{
- System.out.println("FAILURE-ping"+IP+"withnointerfacespecified");
- }
- System.out.println("
- -------Tryingdifferentinterfaces--------
- ");
- Enumeration<NetworkInterface>netInterfaces=
- NetworkInterface.getNetworkInterfaces();
- while(netInterfaces.hasMoreElements()){
- NetworkInterfaceni=netInterfaces.nextElement();
- System.out.println(
- "Checkinginterface,DisplayName:"+ni.getDisplayName()+",Name:"+ni.getName());
- if(address.isReachable(ni,0,5000)){
- System.out.println("SUCCESS-ping"+ip);
- }else{
- System.out.println("FAILURE-ping"+ip);
- }
- Enumeration<InetAddress>ips=ni.getInetAddresses();
- while(ips.hasMoreElements()){
- System.out.println("IP:"+ips.nextElement().getHostAddress());
- }
- System.out.println("-------------------------------------------");
- }
- }catch(Exceptione){
- System.out.println("erroroccurs.");
- e.printStackTrace();
- }
- }
复制代码 程序输入- --------------START--------------
- 10.13.20.70isipv4address
- SUCCESS-ping10.13.20.70withnointerfacespecified
- -------Tryingdifferentinterfaces--------
- Checkinginterface,DisplayName:MSTCPLoopbackinterface,Name:lo
- FAILURE-ping10.13.20.70
- IP:127.0.0.1
- -------------------------------------------
- Checkinginterface,DisplayName:Intel(R)Centrino(R)Advanced-N6200AGN-
- Teefer2Miniport,Name:eth0
- FAILURE-ping10.13.20.70
- IP:9.123.231.40
- -------------------------------------------
- Checkinginterface,DisplayName:Intel(R)82577LMGigabitNetworkConnection-
- Teefer2Miniport,Name:eth1
- SUCCESS-ping10.13.20.70
- -------------------------------------------
- Checkinginterface,DisplayName:WAN(PPP/SLIP)Interface,Name:ppp0
- SUCCESS-ping10.13.20.70
- IP:10.0.50.189
- -------------------------------------------
- --------------END--------------
复制代码 <p>
Java到底会发战成什么样,让我们拭目以待吧,我始终坚信着java会更好。以上都是俺个人看法,欢迎大家一起交流. |
|