当前位置:七道奇文章资讯编程技术Java编程
日期:2011-03-22 16:13:00  来源:本站整理

<b>Merlin的魔力: Java联网加强技术</b>[Java编程]

赞助商链接



  本文“<b>Merlin的魔力: Java联网加强技术</b>[Java编程]”是由七道奇为您精心收集,来源于网络转载,文章版权归文章作者所有,本站不对其观点以及内容做任何评价,请读者自行判断,以下是其具体内容:

Java 编程中的联网包含了定位和辨认资源的本领以及通过 TCP 和 UDP 衔接举行通信的本领.首先,您需求辨认具有象 www.ibm.com 这样名称的资源,然后翻开到该资源的衔接,最后在您自己和衔接的另一端之间发送信息包.由于安全性缘由,大概会包含别的任务,但是整个历程是一样的.关于 Java 平台,会在 java.net 包中找到支持这些操作的类.从 Java 编程的早期到目前,这些操作中大大都都未曾发生太大的改变.但是,随着 Merlin 的发展,这些基本操作中有些已经作了改良,以支持有代价的新功效.在本文中,我们将研究五个此类功效:IPv6 支持、URI、网络接口、非绑定套接字和安全套接字.

对 IPv6 地址的支持

首先让我们研究一下对下一代因特网协议 V6(Internet Protocol V6,IPv6)寻址体系构造的新支持.借助于 InetAddress 的两个新子类( Inet4Address 和 Inet6Address ),您可以与基于 TCP 和 UDP 的利用程序举行衔接. Inet4Address 支持大大都机械所支持的较旧的(并且普通是唯一的)IP 寻址款式,localhost 的格局为 127.0.0.1 .RFC2373(请参阅 参考资料)中所定义的新寻址筹划供应了一种用冒号离隔的格局,此中 0:0:0:0:0:0:0:1 是与 127.0.0.1 等价的回送地址.新的类答应利用程序支持一种或这两种寻址筹划.

对 IPv6 的支持取决于底层平台能否支持它,Solaris 8 和更高版本,以及 Linux 2.1.2 和更高(RedHat 6.1+)版本都支持 IPv6,而 Microsoft Windows 并不支持它(Microsoft 的 Window 2000 实现是个有限的实现).但愿 J2SE 1.4 的 Windows 版本今后能支持 IPv6.

熟习统一资源标识符

java.net 包现已包含了统一资源标识符(uniform resource identifier,URI)类.可将 URI 看做是幕后没有协议处理程序的统一资源定位符(uniform resource locator,URL).普通,URL 看上去象 http://www.ibm.com .为了使 Java 语言运行时理解 URL,它需求知道该怎么处理以 http: 开首的信息.从前,假如您提出新协议(比方,象 jdbc:database ),那么若没有协议处理程序,则您不能将 jdbc:database 字符串作为 URL 处理.相反,您不得不严峻地将它作为字符串处理,这恰是 JDBC 目前所做的.

URI 的典型格局是: [scheme:][//authority][path][?query][#fragment] ,此中 authority 普通就是主机名.但是,它还可以包含用户登录信息和端口: [userInfo@]host[:port] .URI 类自身供应了一系列的 getter 办法,以便理解 URI 各个特定的部份.在您先前传送看上去象 URL 的字符串(但这仅为了描写 URL 而非利用它)的地方,您该当利用该类.

用 NetworkInterface 列出网络衔接

您能否曾经想知道哪个联网接口是可用的,但是在不答复到本机代码的情形下又不知道该若何询问呢?普通,衔接至因特网的大大都机械中有两个衔接:到其自身的本地循环和到其本地服务供应商的衔接.但是,有些机械是 多宿主的.它们有多个网卡,每个网卡都有一个到因特网的独立衔接并且都有自己的名称和地址.有了这个新的 NetworkInterface 接口,您便可以在向外发送多点广播数据报时指定利用哪个网卡,或查看网络衔接能否正常.清单 1 演示了该类的用法:

清单 1. 列出网络接口

import java.net.*;
import java.util.Enumeration;
public class Nets {
  public static void main(String args[]) throws SocketException {
   Enumeration enum = NetworkInterface.getNetworkInterfaces();
   while (enum.hasMoreElements()) {
    NetworkInterface net = (NetworkInterface)enum.nextElement();
    System.out.println(
     "Names: " + net.getName() + " / " + net.getDisplayName());
    Enumeration enum2 = net.getInetAddresses();
    while (enum2.hasMoreElements()) {
     InetAddress address = (InetAddress)enum2.nextElement();
     System.out.println("tAddress: " + address.getHostAddress());
    }
   }
  }
}

您运行该程序所得的后果必定是差别的.清单 2 包含了您想看到的输出样本:

清单 2. 清单 1 的样本后果

Names: lo / MS TCP Loopback interface
     Address: 127.0.0.1
Names: eth0 / 3Com EtherLink PCI
     Address: 192.168.0.109


  以上是“<b>Merlin的魔力: Java联网加强技术</b>[Java编程]”的内容,如果你对以上该文章内容感兴趣,你可以看看七道奇为您推荐以下文章:

  • <b>hosts是什么 hosts文件在什么位置 若何改正hosts</b>
  • <b>在 Windows 8 中手动安装语言包</b>
  • <b>五个常见 PHP数据库问题</b>
  • Windows中Alt键的12个高效快速的利用本领介绍
  • <b>MySQL ORDER BY 的实现解析</b>
  • <b>详解MySQL存储历程参数有三种范例(in、out、inout)</b>
  • <b>Win8系统恢复出来经典的开始菜单的办法</b>
  • <b>Win8系统花屏怎么办 Win8系统花屏的办理办法</b>
  • <b>Windows 7系统下无线网卡安装</b>
  • <b>为什么 Linux不需求碎片整理</b>
  • <b>Windows 8中删除账户的几种办法(图)</b>
  • <b>教你如安在win7下配置路由器</b>
  • 本文地址: 与您的QQ/BBS好友分享!
    • 好的评价 如果您觉得此文章好,就请您
        0%(0)
    • 差的评价 如果您觉得此文章差,就请您
        0%(0)

    文章评论评论内容只代表网友观点,与本站立场无关!

       评论摘要(共 0 条,得分 0 分,平均 0 分) 查看完整评论
    Copyright © 2020-2022 www.xiamiku.com. All Rights Reserved .