理论教育 Java程序设计:ServerSocket类的应用技巧

Java程序设计:ServerSocket类的应用技巧

时间:2023-10-18 理论教育 版权反馈
【摘要】:在13.2.6小节介绍了客户端套接字,接下来介绍服务器套接字ServerSocket。ServerSocket类的构造方法有以下几种:1.ServerSocket()该构造方法为无参构造方法。在使用这种方法创建ServerSocket对象时,因为没有绑定端口号,所创建的服务器端不会监听任何端口,无法直接使用。除此之后,ServerSocket类还提供一些常用方法,如表13.11所示。关闭服务器端的Socket,释放资源。

Java程序设计:ServerSocket类的应用技巧

在13.2.6小节介绍了客户端套接字,接下来介绍服务器套接字ServerSocket。

ServerSocket是Java提供的服务器套接字。该套接字运行在服务器上,并监听特定端口的socket请求。当客户端的socket请求与服务器指定端口建立连接时,服务器将验证客户端请求,并在验证通过后建立服务器与客户端之间的连接。在连接建立之后,客户端和服务器之间就可以进行通信(相互传输数据)了。

ServerSocket类的构造方法有以下几种:

1.ServerSocket()

该构造方法为无参构造方法。在使用这种方法创建ServerSocket对象时,因为没有绑定端口号,所创建的服务器端不会监听任何端口,无法直接使用。因此,需要在使用之前,调用bind(SocketAddress endpoint)方法将其绑定到指定的端口号上,才可以正常使用。

2.ServerSocket(int port)

该构造方法在创建ServerSocket对象时,会绑定一个指定的端口号,其中参数port为给定的端口号。如果给定的端口号为0,则系统会分配一个没有被其他网络程序所使用的端口号。但是,由于客户端需要根据指定的端口号来访问服务器端程序,这种随机分配的情况下将不便于确定端口号,因此建议直接指定一个未被占用的端口号,而不建议将端口号设置为0。

3.ServerSocket(int port, int backlog)

该构造方法在第二个构造方法的基础上增加了一个backlog参数。该参数用于指定在服务器忙时,可以与之保持连接请求的等待客户数量,如果没有指定这个参数,默认为50。

提示:

在创建Socket时如果发生错误,可能会抛出IOException异常。另外,在指定端口的时候,建议选择注册端口(范围是1024~49 151)以免发生端口冲突。

除此之后,ServerSocket类还提供一些常用方法,如表13.11所示。

表13.11 ServerSocket的常用方法(www.daowen.com)

一般情况下,ServerSocket的工作步骤如下:

(1)根据指定端口创建一个ServerSocket对象,该对象将监听指定的端口是否有连接请求。

(2)使用ServerSocket的accept()方法,在指定的端口监听客户端的连接请求。当有客户端试图建立连接时,accept()方法返回连接客户端与服务器的Socket对象。

(3)使用getInputStream()方法或getOutputStream()方法获得输入/输出流。

(4)与客户端进行数据交互,直到连接关闭。

(5)关闭服务器端的Socket,释放资源。

(6)回到(2),继续监听下一次的连接。

以下是创建客户端ServerSocket的代码片段:

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈