精通
英语
和
开源
,
擅长
开发
与
培训
,
胸怀四海
第一信赖
Java的网络功能集中在java.net包中。利用该包中相关类和接口,程序员不需要过深地理解各种协议,也能实现网络应用中的各种C/S(客户机/服务器)或B/S(浏览器/服务器)通信程序。但是掌握一些常见的网络术语,理解它们的含义,对于一名程序员而言,还是非常必要的。
TCP/IP协议(Transmission Control Protocol/Internet Protocol)叫做传输控制协议/网际协议,又叫网络通讯协议。TCP/IP是因特网中使用的基本通信协议。虽然从名字上看TCP/IP包括两个协议:传输控制协议(TCP)和网际协议(IP)。但TCP/IP实际上时一组协议,它包括上百个各种功能的协议,如:远程登录、文件传输和电子邮件等。而TCP协议和IP协议是保证数据完整传输的两个最重要的协议。通常说TCP/IP是Interent协议族,而不单是TCP和IP。
在因特网上,每一台主机都有一个唯一标识固定的IP地址,以区别网络上的其他计算机。该地址由一个叫“IANA”(Interent Assigned Numbers Authority,互联网网络号分配机构)的组织来管理。IP地址是一种层次型地址,由网络号和主机号组成。
按照TCP/IP协议规定,每一个IP地址长32位,也就是4个字节,由4个小于256的数字组成,数字之间用“.”间隔。为了方便人们使用,IP地址经常被写成十进制的形式,这种方法叫点分十进制记法。例如某计算机所在的网络号为:212.16.1,它的主机号为:10,则该计算机的IP地址为:212.16.1.10。
目前正在使用的IP地址是4个字节,又被称为IPv4,由于地址空间有限,现在几乎已被耗尽,于是人们开始研制下一代IP协议,它用16个字节来存储IP地址,被称为IPv6。Java网络包java.net中分别提供了Inet4Address类和Inet6Address类对它们进行处理。
由于IP地址是数字标识,使用时难以记忆和书写,因此在IP地址的基础上又发展出一种符号化的地址方案,来代替数字型的IP地址。每一个符号化的地址都与特定的IP地址对应,这样网络上的资源访问起来就容易得多。这个与网络上的数字型IP地址相对应的字符型地址,就被称为域名。例如,锐英源的域名是:www.wisestudy.cn。不过域名不能直接被网络设备所识别,需要由域名服务器(DNS)转换为IP四肢才能访问。
服务器是指网络中能对其他机器提供某些服务的计算机系统(如果一个PC对外提供ftp服务,也可以叫服务器)。服务器是专指某些高性能计算机,能通过网络,对外提供服务。站在Java程序员的角度来看,一台服务器必须要侦听其他计算器建立连接的请求,并做出应答。
与服务器对应,在网络上请求服务的机器被称为客户机。通常,它会试着与一台服务器建立连接,一旦连接好,就变成了一种双向通信。无论对于客户机还是服务器,连接就成了一个I/O(基本输入输出)数据流对象,这是可以如同对待普通文件那样对待两台连接上的计算机。
套接字(Socket)是TCP/IP中的基本概念,它负责将TCP/IP包发送到指定的IP地址。
也可以看成是在两个程序进行通信连接中的一个端点,一个程序将信息写入Socket中(类似于插座),该Socket将这段信息发送到另一个Socket中(类似于插头),使这段信息能够传送到其他程序。这两端的程序可以是在一台计算机上,也可以在因特网的远程计算机上。
计算机“端口”的英文是port的意译,可以认为是计算机与外界通讯交流的出口。其中硬件领域的端口又称为接口,如:USB端口、串行端口等。软件领域的端口一般指网络中面向连接服务和无连接服务的通信协议识别代码,是一种抽象的软件结构,包括一些数据结构和I/O缓冲区。两台计算机通信时,需要通过指定的端口传递信息。通常,每一个服务都同一个特定的端口编号关联在一起。客户程序必须实现知道所需服务的端口号。
端口号可以使0~65535之间的任意一个整数。一些系统中规定将1024以下的端口保留给系统服务使用(例如,WWW服务使用80端口、发送电子邮件使用25端口等)。如果是自己规定的服务,则绑定连接端口时不应使用这些端口号。
例如:http://www.wisestudy.cn/deve_prodc_kind.html就是一个典型的URL地址,而http://www.wisestudy.cn则是一个简化的UrL地址。