Java 网络编程
文章平均质量分 82
Java 网络编程
低吟不作语
这是最坏的时代,也是最好的时代
展开
-
Java 网络编程 —— 安全网络通信
SSL(Secure Socket Layer,安全套接字层)是一种保证网络上的两个节点进行安全通信的协议。IETF(Interet Engineering Task Force)国际组织对 SSL 作了标准化,制定了 RFC2246 规范,并将其称为传输层安全(Transport Layer Security,TLS)SSL 和 TLS 都建立在 TCP/IP 的基础上,一些应用层协议,如 HTTP 和 IMAP,都可以采用 SSL 来保证安全通信。原创 2023-06-26 23:54:08 · 1332 阅读 · 0 评论 -
Java 网络编程 —— RMI 框架
RMI 是 Java 提供的一个完善的简单易用的远程方法调用框架,采用客户/服务器通信方式,在服务器上部署了提供各种服务的远程对象,客户端请求访问服务器上远程对象的方法,它要求客户端与服务器端都是 Java 程序RMI 框架采用代理来负责客户与远程对象之间通过 Socket 进行通信的细节。RMI 框架为远程对象分别生成了客户端代理和服务器端代理。位于客户端的代理必被称为存根(Stub),位于服务器端的代理类被称为骨架(Skeleton)原创 2023-06-15 16:52:06 · 1253 阅读 · 0 评论 -
Java 网络编程 —— 基于 UDP 的数据报和套接字
UDP(User Datagram Protocol,用户数据报协议)是传输层的另一种协议,比 TCP 具有更快的传输速度,但是不可靠。原创 2023-06-11 17:00:28 · 636 阅读 · 0 评论 -
Java 网络编程 —— 客户端协议处理框架
URL 类:统一资源定位符,表示客户程序要访问的远程资源URLConnection 类:表示客户程序与远程服务器的连接,客户程序可以从 URLConnection 获得数据输入流和输出流URLStreamHandler 类:协议处理器,主要负责创建与协议相关的 URLConnection 对象ContentHandler 类:内容处理器,负责解析服务器发送的数据,把它转换为相应的 Java 对象。原创 2023-06-03 00:06:23 · 371 阅读 · 0 评论 -
Java 网络编程 —— 创建非阻塞的 HTTP 服务器
HTTP 客户程序必须先发出一个 HTTP 请求,然后才能接收到来自 HTTP 服器的响应,浏览器就是最常见的 HTTP 客户程序。HTTP 客户程序和 HTTP 服务器分别由不同的软件开发商提供,它们都可以用任意的编程语言编写。HTTP 严格规定了 HTTP 请求和 HTTP 响应的数据格式,只要 HTTP 服务器与客户程序都遵守 HTTP,就能彼此看得懂对方发送的消息。原创 2023-05-28 15:02:06 · 1376 阅读 · 0 评论 -
Java 网络编程 —— 异步通道和异步运算结果
下例的代码演示了异步通道的用法,它不断接收用户输入的域名并尝试建立连接,最后打印建立连接所花费的时间。如果程序无法连接到指定的主机,就打印相关错误信息。如果用户输入 bye,就结束程序。相似,区别在于异步通道的一些方法总是采用非阻塞模式,并且它们的非阻塞方法会立即返回一个。从 JDK7 开始,引入了表示异步通道的。对象,用来存放方法的异步运算结果。类,这两个类的作用与。原创 2023-05-21 12:34:30 · 479 阅读 · 0 评论 -
Java 网络编程 —— 实现非阻塞式的客户端
同步通信指甲方向乙方发送了一批数据后,必须等接收到了乙方的响应数据后,再发送下一批数据。同步通信要求一个 IO 操作完成之后,才能完成下一个 IO 操作,用阻塞模式更容易实现。异步通信指发送数据和接收数据的操作互不干扰,各自独立进行。异步通信允许发送数据和接收数据的操作各自独立进行,用非阻塞模式更容易实现。值得注意的是,通信的两端并不要求都采用同样的通信方式,当一方采用同步通信时,另一方可以采用异步通信。对于客户与服务器之间的通信,按照它们收发数据的协调程度来区分,可分为同步通信和异步通信。原创 2023-05-20 23:03:40 · 413 阅读 · 0 评论 -
Java 网络编程 —— 实现非阻塞式的服务器
负责接收数据和发送数据的线程按照非阻塞模式工作,只有在读就绪或写就绪事件发生时,才执行相应的接收数据和发送数据操作。假如有许多客户请求连接,可以把接收客户连接的操作单独由一个线程完成,把接收数据和发送数据的操作由另一个线程完成,这可以提高服务器的并发性能。Accept 线程无法向 Selector 注册事件,而主线程没有任何事件可以监控,所以这两个线程将永远阻塞下去。都被设置为非阻塞模式,这使得接收连接、接收数据和发送数据的操作都采用非阻塞模式,注册了事件,并且该事件发生后,主线程才会从。原创 2023-05-20 11:37:26 · 935 阅读 · 0 评论 -
Java 网络编程 —— 非阻塞式编程
在生活中,最常见的阻塞现象是公路上汽车的堵塞。汽车在公路上快速行驶,如果前方交通受阻,就只好停下来等待,等到公路顺畅,才能恢复行驶。线程在运行中也会因为某些原因而阻塞。所有处于阻塞状态的线程的共同特征:放弃 CPU,暂停运行,只有等到导致阻塞的原因消除,才能恢复运行,或者被其他线程中断该线程会退出阻塞状态,并且抛出 InterruptedException线程执行了方法,线程放弃 CPU,睡眠 n ms,然后恢复运行。原创 2023-05-14 16:24:36 · 906 阅读 · 1 评论 -
Java 网络编程 —— 创建多线程服务器
服务端接收到一个客户连接,就与客户进行通信,通信完毕后断开连接,然后接收下一个客户连接,假如同时有多个客户连接请求这些客户就必须排队等候。如果长时间让客户等待,就会使网站失去信誉,从而降低访问量。原创 2023-05-03 16:04:42 · 627 阅读 · 0 评论 -
Java 网络编程 —— ServerSocket 详解
当队列中的连接请求达到了队列的最大长度时,服务器进程所在的主机会拒绝新的连接请求,只有当服务器进程通过 ServerSocket 的。除了第 1 个不带参数的构造方法,其他构造方法都会使服务器与特定端口绑定,由参数 port 指定,无法绑定则抛出 IOException,一般是因为端口已经被其他服务占用,或者没有足够的权限去绑定。参数 port 指定服务器要绑定的端口(即服务器要监听的端口),参数 backlog 指定客户连接请求队列的长度,参数 bindAddr 指定服务器要绑定的 IP 地址。原创 2023-05-02 15:04:28 · 3521 阅读 · 0 评论 -
Java 网络编程 —— Socket 详解
摘自《Java 网络编程核心技术详解》原创 2023-04-30 15:12:26 · 4516 阅读 · 0 评论