赛迪网 > IT技术 Java > Java读书频道-中
  IT资讯搜索
 
IT产品搜索
[程序开发][网管世界][网络安全][数据库技术]
[操作系统][嘉宾聊天·在线访谈][活动集锦]
[精彩专题][Symantec专区][订阅IT技术周刊]
[开发论坛][网管论坛][安全论坛][数据库论坛]
[操作系统论坛][Sybase专区][IBM dW技术专区]
[病毒求助][病毒与漏洞播报][文档·源码下载]

Java2 参考大全:第18章 网络 (3)

发布时间:2006.06.29 01:17     来源:清华大学出版社    作者:Herbert Schildt 著 张玉清 吴溥峰等 译

18.3.2 实例方法
InetAddress 类也有一些非静态的方法,列于下面,它们可以用于讨论过的方法返回的对象:
boolean equals(Object other) 如果对象具有和other相同的Internet地址则返回true。
byte[ ] getAddress( ) 返回代表对象的Internert地址的以网络字节为顺序的有四个元素的字节数组。
String getHostAddress( ) 返回代表与InetAddress对象相关的主机地址的字符串。
String getHostName( ) 返回代表与InetAddress对象相关的主机名的字符串。
int hashCode( ) 返回调用对象的散列码。
boolean isMulticastAddress( ) 如果Internet地址是一个多播地址返回true;否则返回false。
String toString( ) 返回主机名字符串和IP地址。
Internet地址在分层的缓存服务器系列中被找到。这意味着你的本地机可能像知道它自己和附近的服务器一样知道一个名称-IP地址的自动映射。对于其他名称,它可能向一个本地DNS服务器询问IP地址信息。如果那个服务器不含一个指定的地址,它可以到一个远程的站点去询问。这可以一路通到名为InterNIC(internic.net)的根服务器。该过程可能需要比较长的时间,所以结构化你的代码以使你在本地存储IP地址信息而不是重复向上查找信息是一个明智之举。
18.4 TCP/IP客户套接字
TCP/IP 套接字用于在主机和Internet之间建立可靠的、双向的、持续的、点对点的流式连接。一个套接字可以用来建立Java 的输入/输出系统到其他的驻留在本地机或Internet上的任何机器的程序的连接。
注意:小应用程序只建立回到下载它的主机的套接字连接。存在这个限制的原因是:穿过防火墙的小应用程序有权使用任何机器是很危险的事情。
Java中有两类TCP套接字。一种是服务器端的,另一种是客户端的。ServerSocket类设计成在等待客户建立连接之前不做任何事的“监听器”。Socket类为建立连向服务器套接字以及启动协议交换而设计。一个Socket对象的创建隐式建立了一个客户和服务器的连接。没有显式的说明建立连接细节的方法或构造函数。下面是用来生成客户套接字的两个构造函数:
Socket(String hostName, int port) 创建一个本地主机与给定名称的主机和端口的套接字连接,可以引发一个UnknownHostException异常或IOException异常。
Socket(InetAddress ipAddress, int port) 用一个预先存在的InetAddress对象和端口创建一个套接字,可以引发IOException异常。
使用下面的方法,可以在任何时候检查套接字的地址和与之有关的端口信息:
InetAddress getInetAddress( ) 返回和Socket对象相关的InetAddress。
Int getPort( ) 返回与该Socket对象连接的远程端口。
Int getLocalPort( ) 返回与该Socket连接的本地端口。
一旦Socket对象被创建,同样可以检查它获得访问与之相连的输入和输出流的权力。如果套接字因为网络的连接中断而失效,这些方法都能够引发一个IOException异常。
InputStream getInputStream( ) 返回与调用套接字有关的InputStream类。
OutputStream getOutputStream( ) 返回与调用套接字有关的OutputStream类。
void close( ) 关闭InputStream和OutputStream。
18.4.1 Whois
下面的例子打开了一个InterNIC服务器上“whois”端口的连接,传输命令行语句到套接字,然后打印返回的数据。InterNIC将努力寻找作为已注册的Internet域名的参数,然后传输回IP地址和该地点的联系信息。
//Demonstrate Sockets.
import java.net.*;
import java.io.*;
class Whois {
public static void main(String args[]) throws Exception {
int c;
Socket s = new Socket("internic.net", 43);
InputStream in = s.getInputStream();
OutputStream out = s.getOutputStream();
String str = (args.length == 0 ? "osborne.com" : args[0]) + "\n";
byte buf[] = str.getBytes();
out.write(buf);
while ((c = in.read()) != -1) {
System.out.print((char) c);
}
s.close();
}
}
例如,如果你在命令行键入osborne.com,你将会获得下面相似的结果:
Whois Server Version 1.3
Domain names in the .com, .net, and .org domains can now be registered
with many different competing registrars. Go to http://www.internic.net
for detailed information.
Domain Name: OSBORNE.COM
Registrar: NETWORK SOLUTIONS, INC.
Whois Server: whois.networksolutions.com
Referral URL: www.networksolutions.com
Name Server: NS1.EPPG.COM
Name Server: NS2.EPPG.COM
Updated Date: 07-apr-2000
>>> Last update of whois database: Fri, 6 Oct 2000 10:03:36 EDT <<<
The Registry database contains ONLY .COM, .NET, .ORG, .EDU domains and
Registrars.

<<上一页 1 2 3 4 5 6 7 8 9 10 下一页>>


[ 发表评论 ] 字体[  ] [ 打印 ] [ 进入博客 ] [ 进入论坛 ]  [ 推荐给朋友 ]
  相关文章
· 第17章 输入/输出:探究java.io (06-19) · java.util第2部分:更多的实用工具类 (06-11)
  客户需求反馈表
* 姓  名:
更多资料  了解方案  认识厂商
* 单位名称:
* 联系电话:
* 电子邮件:
  赛迪推荐  
  手机·资费 ·新品·导购·评测·手机资费·宽带
手机搜索  诺基亚 N73 MOTO Z6
  IT产品 ·笔记本·台式机·服务器·打印·投影
IT产品搜索 
  IT技术 ·开发·网管·安全·数据库·操作系统
  信息化 ·热点·专题·访谈·周刊·方案案例
[政务][电信][金融][农业][制造业][中小企业]
[CIO][ERP][协同][IT管理][中间件][电子商务]
[政策][地方][专家][评估][辞典][博客][社区]
· 专题:一路畅通构想曲——让出行不再遭遇堵车
· CIO工作亲历:企业ERP选型不能忽视"选人关"
· 综述:信息化建设给中国监狱带来的各种变化
· 金融业风险管理和法规遵从有五点需考虑的因素
· 保险业CIO关注:该如何建立统一高效的CRM体系
· 调查显示:多数CIO对IT规划仍存在困惑和误解
  博客·论坛 ·曾剑秋·项立刚·Java学习·网管