19.1 网络程序设计基础
1、概述
Java已经将网络程序锁需要的东西封装成不同的类。只要创建这些类的对象,使用相应的方法,及时设计人员不具备有关的网络知识,也可以编写出高质量的网络通信程序。
2、网络协议
a、IP协议
IP是Internet Protocol的简称,它是一种网络协议。Internet网络采用的协议是TCP/IP协议,其全称是Transmission Control Protocol/Internet Protocol。
TCP/IP模式是一种层次结构,共分为4层,分别为应用层、传输层、互联网层和网络层。各层实现特定的功能,提供特定的服务和访问接口,并具有相对的独立性。
b、TCP和UDP协议
在TCP/IP协议栈中,有两个高级协议是网络应用程序编写者应该了解的,即传输控制协议(Transmission Control Protocol,TCP)与用户数据报协议(User Ddatagram Protocol,UDP)。
TCP协议是一种以一种以固接连线为基础的协议,它提供两台计算机间可靠的数据传送。TCP可以保证从一段数据送至链接的另一端时,数据能够确实送达,而且抵达的数据的排列顺序和送出是的顺序相同,因此,TCP协议适合可靠性要求比较高的场合。就像拨打电话,必须先拨号给对方,等两端确定链接后,相互才能听到对方说话,也知道对方回应的是什么。
UDP是无连接通信协议,不保证可靠数据的传输,但能够像若干个目标发送数据,接收发自若干个源的数据。UDP是以独立发送数据包的方式进行。UDP协议适合于一些对数据准确性要求不高的场合,如网络聊天室、在线影片等。
3、端口和套接字
通常,0~1023之间的端口数用于一些知名的网络服务和应用,用户的普通网络应用程序应该使用1024以上的端口数,以避免端口号与另一个应用或系统服务所用端口冲突。端口被规定为一个在0~65535之间的整数。例如HTTP服务一般使用80端口,FTP服务使用21端口。
网络程序中的套接字(Socket)用于将应用程序与端口连接起来。Java将套接字抽象化为类,程序设计者值需创建Socket类对象,即可使用套接字。