Java运行机制与端口之间的关系

Java运行机制与端口之间的关系

Java运行机制与端口之间的关系

和Internet上的许多环境一样,完整的Java应用环境实际上也是一个客户机/服务器环境,更确切地说是浏览器/服务器模型(即Browser/Server模型,简称Web模型)。客户机/服务器在分布处理过程中,使用的是基于java连接的网络通信模式。该通信模式首先在客户机和服务器之间定义一套通信协议,并创建一Socket类,利用这个类建立一条可靠的链接。然后,客户机/服务器再利用这条链接可靠地传输数据。客户机发出请求,服务器监听来自客户机的请求,并为客户机提供响应服务。

Java服务器端利用ServerSocket 类来处理客户机的连接请求,当客户机连接到服务器所监听的端口时,ServerSocket将分配一新的Socket 对象(分配一个新的Socket的时候必须同时指定Internet地址和端口。端口是一个1到65535之间的整数值。如果我们把Internet地址看成是门牌号码,则端口号可以看成是房间号)。这个新的Socket 对象将连接到一些新端口,同时服务器也将创建一新线程,即一个connection对象,以处理基于Socket的通信,整个会话完毕后,自动关闭connection对象。但整个运行过程本身却是一个无限循环的过程。

这就是我们所看到的客户端请求的程序越多,动态端口也越多。操作系统分配的端口将逐渐变大。具体来说,当你浏览Web页时用“netstat”查看,每个Web页需要一个新端口。但端口大小仍控制1024到49151之间(这一范围属于注册端口,一般情况下系统处理动态端口都会注册端口内完成处理)。

运行机制如下:

1、服务器监听相应端口的输入; 2、客户机发出一个请求; 3、服务器接收到此请求;

4、ServerSocket创建一个新的Socket类实例,同时服务器也将创建一新线程,

即一个connection对象;

5、服务器处理这个请求,并把结果返回给客户机; 6、处理结束后,关闭connection对象;

首页