Java语言使用了基于套接字(Socket)的通信方式,通过系统包java.net实现三种网络通信模式:URL、Socket、Datagram(数据报)。
一、网络编程的基础知识:
Internet上的计算机之间采用TCP/IP协议进行通信,其体系结构分为四层,其结构及各层主要协议如下图所示:
1、网络编程的基本理论:
(1)TCP/IP模型提供了两种传输协议,即传输控制协议TCP和用户数据报协议UDP:
TCP协议是面向连接的协议,而UDP协议是一种无连接协议。采用哪一种传输层协议由应用程序来决定,若希望更加稳定可靠的话,用面向连接的方式更合适;若希望尽可能提高系统资源的利用率,可以考虑采用面向非连接的方式,即UDP方式。
(2)应用层包含所有的高层协议,应用最广泛的是超文本传输协议HTTP,用于从Web服务器读取网页信息。
(3)IP地址和端口(port)为网络通信的应用程序提供了一种确定的地址标识。
2、网络编程的基本概念:
(1)IP地址:用于标识网络上的计算机或者其他网络设备,由4字节(byte)(32位(bit))组成,为了方便,通常用十进制表示,各个字节之间用.分隔。如192.168.10.88,每个字节的取值范围是0~255.
(2)TCP与UDP
TCP提供两台计算机之间无差错的可靠数据传输,是面向连接的通信协议。
UDP是无连接通信协议,不保证可靠的数据传输,但若向若干个目标同时发送数据,也可以接收若干源的数据,收到数据方也无需确认。
(3)Socket套接字
Socket套接字是网络驱动层提供给应用程序编程的接口和管理方法,处理数据接收与输出。Socket在应用程序创建,通过一种绑定机制与应用程序建立关联,告诉对方自己的IP和端口号,然后应用程序送给Socket数据,由Socket交给驱动程序向网络发布。接收方可以从Socket提取相应的数据。
(4)数据报datagram
数据报是一种面向非连接的、以数据报方式工作的通信,适用于网络层不可靠的数据传输与访问。
(5)URL
URL是网络统一资源定位器,确定数据在网络上的位置。如一个网址、一个网络路径、磁盘上文件的路径都是有效的URL地址。
3、网络编程的基本方法
Java语言专门为网络通信提供了系统软件包java.net,利用它提供的有关类及方法以快速开发基于网络的应用程序。
系统软件包java.net对HTTP协议提供了特别的支持,只要通过URL类对象指明图像、声音资源的位置,即可轻松的从Web服务器上下载图像和声音资源;或者通过数据流操作,获得HTML文档和文本资源,并对这些资源进行处理,简单而快捷。
java.net包还提供了对TCP、UDP协议套接字(Socket)编程的支持,可以建立自己的服务器,实现特定的应用。