网络通信要素



p地址:与网络上哪台计算机通信



p端口:与计算机上的哪个网络应用程序通信



p协议:采用什么规则进行通信




Java.net的包提供相应的类与方法



p地址:获得要通信的网络计算机地址



      代表IP地址的InetAddress类



p端口:获得要通信网络应用程序



      0-65535的端口号,1024以下的保留



p协议:采用某种确认的通信规则



      TCP:ServerSocket/Scoket



      UDP:DatagramSocket





IP地址:



p IP网络中每台主机都必须有一个惟一的IP地址;



p IP地址是一个逻辑地址;



p 因特网上的IP地址具有全球唯一性;



p 32位,4个字节,常用点分十进制的格式表示,例如:192.168.0.16



p Java.net包中提供一个InetAddress类表示IP地址



InetAddress对象:



用途:获得要通信的对象的IP地址.



说明: InetAddress类提供了域名解析和反解析功能



     InetAddress类没有构造函数,但拥有一 些能够返回 InetAddress对象的static的方法



      getLocalHost():返回本地主机的IP地址



      getByName(String host):返回host主机的IP地址



      getByAddress(byte[] addr):返回addr主机的IP地址, addr数组元素的值是未经处理的4组数字(-127~128).



          



      以上都是静态方法,返回值为InetAddress对象,且都要抛出异常throws UnknownHostException





端口:



p端口用一个整数型标识符来表示,即端口号。端口号跟协议相关,TCP/IP传输层的两个协议TCP和UDP是完全独立的两个软件模块,因此各自的端口号也相互独立,端口通常称为协议端口(protocol port) ,简称端口。



p端口使用一个16位的数字来表示,它的范围是0~65535,1024以下的端口号保留给预定义的服务。例如:http使用80端口。







TCP协议实现的方法:



p协议:为进行网络中的数据交换(通信)而建立的规则、标准或约定。(=语义+语法+规则)



pTCP/IP已成为Internet上通信的工业标准。



pTCP/IP模型包括4个层次:



n应用层:SMTP\POP3\FTP\Telnet\Http



n传输层: TCP\UDP



n网络层:IP\ICMP\IGMP



n网络接口






p 为了能够方便的开发网络应用软件,由美国伯克利大学在Unix上推出了一种应用程序访问通信协议的操作系统调用socket(套接字)。socket的出现,使程序员可以很方便地访问TCP/IP,从而开发各种网络应用的程序。



p 随着Unix的应用推广,套接字在编写网络软件中得到了极大的普及。后来,套接字又被引进了Windows 等操作系统中。Java语言也引入了套接字编程模型。



p TCP协议Socket:



Socket类



     ServerSocket类








p



n        发起连接请求的一方:客户端(client)



n        接受连接请求的一方:服务器端(Server)








TCP协议通信过程



客户端程序编写:



①调用Socket()创建一个流套接字,并连接到服务器端;



②调用Socket类的getOutputStream()和getInputStream获取输出流和输入流,开始网络数据的发送和接收。



③最后关闭通信套接字。



服务器程序编写:



①调用ServerSocket(int port)创建一个服务器端套接字,并绑定到指定端口上;



②调用accept(),监听连接请求,如果客户端请求连接,则接受连接,返回通信套接字。



③调用Socket类的getOutputStream()和getInputStream获取输出流和输入流,开始网络数据的发送和接收。



④最后关闭通信套接字。