ServerSocket类是与Socket类相对应的用于表示通信双方中的服务器端,用于在服务器上开一个端口,被动地等待数据(使用accept()方法)并建立连接进行数据交互。
服务器套接字一次可以与一个套接字连接,如果多台客户端同时提出连接请求,服务器套接字会将请求连接的客户端存入队列中,然后从中取出一个套接字与服务器新建的套接字连接起来。若请求连接大于最大容纳数,则多出的连接请求被拒绝;默认的队列大小是50。
ServerSocket的构造方法如表9-2所示。
表9-2 ServerSocket的构造方法
在上述方法的参数中,port 指的是本地TCP 端口,backlog 指的是监听backlog,bind Addr指的是要将服务器绑定到的Inet Address。
创建ServerSocket时可能会抛出IOException异常,所以要进行异常捕捉。如下所示为使用8111端口的ServerSocket实例代码:
ServerSocket的常用方法如表9-3所示。(www.xing528.com)
表9-3 ServerSocket常用方法
调用accept()方法会返回一个和客户端Socket对象相连接的Socket对象,服务器端的Socket对象使用get OutputStream()方法获得的输出流将指定客户端Socket对象使用getInputStream()方法获得那个输入流。同样,服务器端的Socket 对象使用的getInputStream()方法获得的输入流将指向客户端Socket对象使用的get Output Stream()方法获得的那个输出流。也就是说,当服务器向输出流写入信息时,客户端通过相应的输入流就能读取,反之同样如此。
【例9-2】 了解上面的基础知识后,下面使用ServerSocket类在本机上创建一个使用端口8888的服务器端套接字,实例代码如下所示:
如上述代码所示,在成功建立8888端口的服务器端套接字之后,如果没有客户端的连接请求,则accept()方法为空,所以不会输出“成功建立与客户端的连接”,运行结果如下所示:
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。