计算机网络课设报告,java平台实现,Java;HTTP;Web服务器
3.2 Web服务器的套接字编程
Java提供了一个 ServerSocket类,程序员可以很方便地用它编写服务器程序。服务器套接字的基本功能类似于坐在电话机旁边等待呼叫到来。从技术上讲, ServerSocket运行在服务器上并监听到来的 TCP连接。
每个ServerSocket都在服务器上的指定端口监听。当远程主机上的客户Socket试图与指定端口建立连接时,服务器被激活,判定客户程序与服务器的连接,并打开两个主机之间固有的Socket。一旦与服务器套接字建立了连接,则服务器就可以使用固有的Socket对象向客户机发送数据。数据总是通过固有的套接字传递。
3.2.1 ServerSocket类
ServerSocket类包含了用 Java编写服务器程序的所有内容。它包括创建新 ServerSocket对象的构造器、在指定端口监听连接的方法,以及连接建立后可以发送和接收数据时返回 Socket对象的方法。此外,它还有设置不同选项以及各种各样常用的方法,例如 toString()方法。
服务器的基本生命期是:
1. 利用 ServerSocket()构造器在指定端口创建一个新的 ServerSocket;
2. ServerSocket利用它的accept()方法在指定端口监听到来的连接。accept()方法一直处于阻塞状态,直到有客户机试图建立连接。这时 accept()方法返回连接客户机何服务器的 Socket;
3. 调用 getInputStream()方法、getOutputStream()方法或者两者都调用来得到与客户机通信的输入流和输出流,具体调用哪一个方法还是两者都调用与具体服务器的类型有关;
4. 服务器和客户机根据双方都承认的协议进行交互,直到关闭连接时为止;
5. 服务器、客户机或两者均关闭连接;
6. 服务器返回步骤 2,等待下一个连接到来。如果在4步花费的时间很长或时间无限期,则wu-ftpd这样的传统Unix服务器会创建一个新的进程来处理每个连接,从而使服务器在同一时刻可以为多个客户机提供服务。