欢迎您的访问
专注架构,Java,数据结构算法,Python技术分享

Java网络通信

二十、网络编程-Netty-在-Dubbo-中如何应用

站长阅读(992)赞(1)

前言 众所周知,国内知名框架 Dubbo 底层使用的是 Netty 作为网络通信,那么内部到底是如何使用的呢?今天我们就来一探究竟。 1. dubbo 的 Consumer 消费者如何使用 Netty 注意:此次代码使用了从 github ...

十九、网络编程Netty 粘包 & 拆包 & 编码 & 解码 & 序列化

站长阅读(655)赞(1)

前言 Netty 作为一个网络框架,对 TCP 连接中的问题都做了全面的考虑,比如粘包拆包导致的半包问题,如何编解码,如何实现私有协议,序列化等等。 本文主要针对这些问题做一个简单介绍,目的是想对整个 Netty 的编解码框架做一个全盘的审...

十八、网络编程Netty 解码器抽象父类 ByteToMessageDecoder 源码解析

站长阅读(724)赞(1)

前言 Netty 的解码器有很多种,比如基于长度的,基于分割符的,私有协议的。但是,总体的思路都是一致的。 拆包思路:当数据满足了 解码条件时,将其拆开。放到数组。然后发送到业务 handler 处理。 半包思路: 当读取的数据不够时,先存...

十七、网络编程Netty实现一个简单的 RPC

站长阅读(722)赞(1)

前言 众所周知,dubbo 底层使用了 Netty 作为网络通讯框架,而 Netty 的高性能我们之前也分析过源码,对他也算还是比较了解了。今天我们就自己用 Netty 实现一个简单的 RPC 框架。 1. 需求 模仿 dubbo,消费者和...

十六、网络编程-NIO、BIO、AIO

站长阅读(646)赞(1)

引言 java.nio全称java non-blocking IO,是指jdk1.4 及以上版本里提供的新api(New IO),为所有的原始类型(boolean类型除外)提供缓存支持的数据容器,使用它可以提供非阻塞式的高伸缩性网络。 目录...

十五、网络编程-ServerSocket(二)

站长阅读(617)赞(1)

引言 前面已经讲过线程池和ServerSocket的编程了,这一节讲讲怎么在ServerSocket中结合线程池使用。 现在服务器端采用的实现方式是:一个客户端对应一个线程。但是,每个新线程都会消耗系统资源:创建一个线程会占用CPU周期,而...

十四、网络编程-ServerSocket(一)

站长阅读(714)赞(1)

引言 上一节讲解socket的基本使用,这一节来顺带着讲讲socket的一个自认为重要的设置选项的方法,哈哈,多多少少会在今后的开发中使用到。还是比较好用的。 public void setsolingen( boolean on, int...

十三、网络编程-Socket(二)

站长阅读(824)赞(1)

引言 java.net.Socket 类代表客户端和服务器都用来互相沟通的套接字。客户端要获取一个 Socket 对象通过实例化 ,而 服务器获得一个 Socket 对象则通过accept() 方法的返回值。 构造函数 public Soc...

十二、网络编程-Socket(一)

站长阅读(624)赞(1)

引言 网络编程是指编写运行在多个设备(计算机)的程序,这些设备都通过网络连接起来。 java.net 包中 J2SE 的 API 包含有类和接口,它们提供低层次的通信细节。你可以直接使用这些类和接口,来专注于解决问题,而不用关注通信细节。 ...

十一、网络编程之网络编程-UDP

站长阅读(534)赞(1)

引言 UDP 是 User Datagram Protocol的简称, 中文名是用户数据报协议,是 OSI(Open System Interconnection,开放式系统互联) 参考模型中一种无连接的传输层协议,提供面向事务的简单不可靠...