1.2.2 ServerSocket类

Socket类表示一个客户端套接字,即,当想要连接到远程服务器应用程序时创建的套接字
想要实现一个服务器应用程序(例如一个HTTP服务器或FTP服务器),你需要另一种方法。应为服务器必须时刻待命,它并不知道客户端应用程序会在什么时候发起连接。此时需要使用java.net.ServerSocket类,这是服务器套接字的实现。
ServerSocket类与Socket类并不相同。服务器套接字要等待来自客户端的连接请求。当服务器套接字收到连接请求后,它会创建一个Socket实例来处理与客户端的通信。

  1. 创建服务器套接字ServerSocket实例
    可以使用ServerSocket类提供的4个构造函数中的任意一个。需要指明IP地址和服务器套接字侦听的端口号。
    典型的情况下,IP地址可以是127.0.0.1,即服务器套接字会侦听本地机器接收到的连接请求。
    服务器套接字侦听的IP地址成为绑定地址。
    服务器套接字的另一个重要属性是backLog,表示在服务器拒绝接收传入的请求之前,传入的连接请求的最大队列长度。
    其中一个构造函数签名如下:
    public ServerSocket(int port, int backLog, InetAddress bindingAddress);
    需要注意,参数绑定地址必须是java.net.InetAddress类的实例。
    创建InetAddress对象的一种简单方法是调用其静态方法getByName(),传入包含主机名的字符串,代码如下:
    InetAddress.getByName("127.0.0.1");
  2. 创建了ServerSocket实例后,可以使其等待传入的连接请求,该连接请求会通过服务器套接字侦听的端口上绑定地址传入。
  3. ServerSocket处理连接请求
    处理连接请求通过调用ServerSocket类的accept()方法完成。
    只有当接收到连接请求后,该方法才会返回,其返回值是一个Socket实例。
    然后,如上节1.2.1 Socket类 所述,可以使用该Socket对象与客户端应用程序进行字节流的发送/接收。

你可能感兴趣的:(1.2.2 ServerSocket类)