05 2023 档案
摘要:## HTTP 概述 HTTP 客户程序必须先发出一个 HTTP 请求,然后才能接收到来自 HTTP 服器的响应,浏览器就是最常见的 HTTP 客户程序。HTTP 客户程序和 HTTP 服务器分别由不同的软件开发商提供,它们都可以用任意的编程语言编写。HTTP 严格规定了 HTTP 请求和 HTTP
阅读全文
摘要:从 JDK7 开始,引入了表示异步通道的 `AsynchronousSockerChannel` 类和 `AsynchronousServerSocketChannel` 类,这两个类的作用与 `SocketChannel` 类和 `ServerSockelChannel` 相似,区别在于异步通道的
阅读全文
摘要:## 创建阻塞的 EchoClient 客户程序一般不需要同时建立与服务器的多个连接,因此用一个线程,按照阻塞模式运行就能满足需求 ```java public class EchoClient { private SocketChannel socketChannel = null; public
阅读全文
摘要:创建阻塞的服务器 当 ServerSocketChannel 与 SockelChannel 采用默认的阻塞模式时,为了同时处理多个客户的连接,必须使用多线程 public class EchoServer { private int port = 8000; private ServerSocke
阅读全文
摘要:线程阻塞概述 在生活中,最常见的阻塞现象是公路上汽车的堵塞。汽车在公路上快速行驶,如果前方交通受阻,就只好停下来等待,等到公路顺畅,才能恢复行驶。 线程在运行中也会因为某些原因而阻塞。所有处于阻塞状态的线程的共同特征:放弃 CPU,暂停运行,只有等到导致阻塞的原因消除,才能恢复运行,或者被其他线程中
阅读全文
摘要:一个典型的单线程服务器示例如下: while (true) { Socket socket = null; try { // 接收客户连接 socket = serverSocket.accept(); // 从socket中获得输入流与输出流,与客户通信 ... } catch(IOExcepti
阅读全文
摘要:构造 ServerSocket ServerSocket 的构造方法有以下几种重载形式 ServerSocket() throws IOException ServerSocket(int port) throws IOException ServerSocket(int port, int bac
阅读全文