|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
最后我再次声明,我并没有说不看好java,实际上我对java很乐观的,毕竟她正在不断改进中,我相信她总有一天会和.net并驾齐驱的条记JavaNetworkProgramming条记
n5
二查找Internet地点
Chapter6LookingupInternetAddresses
java.net.InetAddress类是java对IP地点的封装,这个类被其他年夜多半收集类利用,包含Socket,ServerSocket,URL,DatagramSocket,DatagramPacket。
该类中包括hostName和address,但不是public的。
1取得InetAddress对象
InetAddress类没有私有机关器,经由过程三个static办法可失掉InetAddress对象:
publicstaticInetAddressInetAddress.getByName(StringhostName)throwsUnknownHostException
publicstaticInetAddress[]InetAddress.getAllByName(StringhostName)throwsUnknownHostException
publicstaticInetAddressInetAddress.getLocalHost()throwsUnknownHostException
这三个办法会举行收集毗连往失掉它们必要的一切信息。类中的其他办法如getAddress()和getHostName()利用这3个办法供应的信息而不举行收集毗连,不外十分小的情形它们也会毗连收集但不抛出任何非常。
参数hostName能够是网址如www.xxx.com也能够是字符串情势的点分IP地点如10.2.3.4
Java1.1今后,假如用IP地点做参数,将依据这个IP地点创立一个InetAdress对象,而不利用DNS反省。这便可能创立一个主机其实不存在的InetAddress对象。利用这类办法创立的InetAddress对象,主机名(hostName)被初始化为点分IP地点。只要当hostname被哀求时(显现的如挪用getAddress(),隐式的如挪用toString()),DNS才会反省实践的主机名,假如DNS反省发明指定的IP地点找不到,则hostname保存为本来的点分IP地点,而不会抛出UnknownHostException
HostName比IP地点不乱,关于一个主机HostName常常稳定而IP地点大概变更,以是最好利用hostname做参数,而只要当主机没有hostname时才利用点分ip地点。
有些主机有不止一个IP地点,利用getAllByName()能够以数组的情势失掉某主机名对应的一切IP地点。
getLocalHost()取得本机的InetAddress对象
2取得信息
publicStringgetHostName()
能够失掉hostname,出格是用点分IP地点作为参数失掉InetAddress对象时可用getHostName失掉hostname.
publicStringgetHostAddress()
失掉点分IP地点字符串,可用这个办法打印出IP地点
publicbyte[]getAddress()
失掉IP地点,存储在byte数组中,好比IPv4格局的IP地点10.2.3.4会失掉长度为4的数组ip,则ip[0]=10,ip[1]=2,ip[2]=3,ip[3]=4;如果IPv6,则数组长度就不是4了
注重,前往的byte应当是无标记的,0~255,但java的byte是以带标记的。年夜于127的byte被看做正数。因而,应当用int(或short等)寄存ip地点的每个数字,并做响应的调剂
intunsignedByte=signedByte<0?singedByte+256:singedByte;
3
publicbooleanequals(Objecto)
一个Object对象equalsto一个InetAddress对象的前提是该Object是InetAddress类的一个实例而且它们具有不异的IP地点。equals不必要hostname不异。
4例程HostLookup.java
进而能拉拢大多数程序员用windows产品。并且从ASP.NETAJAX可以跨平台这一点上,间接证明了我们的推断,至少证明了微软做过这方面的研究。所以如果哪一天突然听说了.net可以跨平台了,那么请不要吃惊,如果这一天真的到来,java就到了真正和.net决战的时刻。因为不到万不得以的时候微软是不会推出跨平台的.net的,如果跨平台的.net还不足以对抗java的话,那么微软还剩的手段就是开源了,呵呵。 |
|