在应用中,客户端连接到服务端,服务器处理请求并响应。在这个过程中,客户端和服务端通过socket连接,绑定到socket中,服务端等待着监听来自client的请求。
客户端与服务端连接后,相互读写数据通过socket。
Blocking I/O – 堵塞 I/O
通过Blocking I/O,客户端发送请求到服务端,线程处理这个连接,这是一个堵塞,直到数据读取或者写入完成。相关操作在完成之前,线程都是一直等待。现在执行一个并发请求,这就是需要多线程,需要分配新的线程
- 先创建 server socket 监听请求连接通过指定端口
ServerSocket serverSocket = new ServerSocket(portNumber);
Server Socket 监听客户端连接
- 调用accept() 方法,服务端启动并等待客户端连接,当客户端发送请求时,server socket 接收来自客户端的请求并用 新的socket与客户端连接,在新的连接之前,server socket 是堵塞的ÿ