随笔分类 - Java 网络编程
摘要:SSL 简介 SSL(Secure Socket Layer,安全套接字层)是一种保证网络上的两个节点进行安全通信的协议。IETF(Interet Engineering Task Force)国际组织对 SSL 作了标准化,制定了 RFC2246 规范,并将其称为传输层安全(Transport L
阅读全文
摘要:## 概述 RMI 是 Java 提供的一个完善的简单易用的远程方法调用框架,采用客户/服务器通信方式,在服务器上部署了提供各种服务的远程对象,客户端请求访问服务器上远程对象的方法,它要求客户端与服务器端都是 Java 程序 RMI 框架采用代理来负责客户与远程对象之间通过 Socket 进行通信的
阅读全文
摘要:## UDP 简介 UDP(User Datagram Protocol,用户数据报协议)是传输层的另一种协议,比 TCP 具有更快的传输速度,但是不可靠。UDP 发送的数据单元被称为 UDP 数据报,当网络传输 UDP 数据报时,无法保证数据报一定到达目的地,也无法保证各个数据报按发送的顺序到达目
阅读全文
摘要:## 概述 Java 对客户程序的通信过程进行了抽象,提供了通用的协议处理框架,该框架封装了 Socket,主要包括以下类: - URL 类:统一资源定位符,表示客户程序要访问的远程资源 - URLConnection 类:表示客户程序与远程服务器的连接,客户程序可以从 URLConnection
阅读全文
摘要:## 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
阅读全文
摘要:构造 Socket 在【客户端/服务端】的通信模式中,客户端需要主动构造与服务器连接的 Socket,构造方法有以下几种重载形式: Socket() Socket(InetAddress address, int port) throws UnknownHostException,IOExcepti
阅读全文