05 2018 档案

摘要:这节讲解基于 Netty 快速实现一个聊天小程序。 一、服务端 1. SimpleChatServerHandler(处理器类) 该类主要实现了接收来自客户端的消息并转发给其他客户端。 2. SimpleChatServerInitializer(配置 Channel 类) 该类添加分隔符协议处理类 阅读全文
posted @ 2018-05-16 13:30 Just_for_Myself 阅读(2180) 评论(0) 推荐(2) 编辑
摘要:我们需要区分不同帧的首尾,通常需要在结尾设定特定分隔符或者在首部添加长度字段,分别称为分隔符协议和基于长度的协议,本节讲解 Netty 如何解码这些协议。 一、分隔符协议 Netty 附带的解码器可以很容易的提取一些序列分隔: 下面显示了使用 “\r\n”分隔符的处理: 下面为 LineBaseFr 阅读全文
posted @ 2018-05-15 14:37 Just_for_Myself 阅读(2630) 评论(0) 推荐(0) 编辑
摘要:检测空闲连接和超时是为了及时释放资源。常见的方法是发送消息来测试一个不活跃的连接,通常称为“心跳”。 Netty 提供了几个 ChannelHandler 来实现此目的,如下: 下面是 IdleStateHandler 的一个简单使用: 阅读全文
posted @ 2018-05-14 19:48 Just_for_Myself 阅读(3819) 评论(0) 推荐(0) 编辑
摘要:HTTP/HTTPS 是最常见的一种协议,这节主要是看一下 Netty 提供的 ChannelHaandler。 一、HTTP Decoder,Encoder 和 Codec HTTP 是请求-响应模式,客户端发送一个 HTTP 请求,服务就响应此请求。 HttpRequest 包格式如下: Htt 阅读全文
posted @ 2018-05-14 19:18 Just_for_Myself 阅读(7699) 评论(0) 推荐(1) 编辑
摘要:为了支持 SSL/TLS,Java 提供了 javax.net.ssl API 的类 SslContext 和 SslEngine 使它相对简单的实现解密和加密。Netty 利用该 API 实现了 ChannelHandler 的子类 SslHandler。下图为 Sslhandler 的数据流图: 阅读全文
posted @ 2018-05-14 10:45 Just_for_Myself 阅读(4217) 评论(0) 推荐(1) 编辑
摘要:Netty 提供了丰富的解码器抽象基类,主要分为两类: 解码字节到消息(ByteToMessageDecoder 和 ReplayingDecoder) 解码消息到消息(MessageToMessageDecoder) 一、ByteToMessageDecoder ByteToMessageDeco 阅读全文
posted @ 2018-05-12 16:25 Just_for_Myself 阅读(8943) 评论(0) 推荐(1) 编辑
摘要:本节主要讨论了 Netty 的数据处理组件 ChannelHandler。 一、Channel 生命周期 Channel 有个简单但强大的状态模型,下面是 Channel 的四个状态: Channel 的正常生命周期如下图,当这些状态发生变化时,对应的事件将会生成。 二、ChannelHandler 阅读全文
posted @ 2018-05-12 15:07 Just_for_Myself 阅读(2333) 评论(0) 推荐(1) 编辑
摘要:Netty 中使用 ByteBuf 代替 Java NIO 提供的 ByteBuffer 作为字节的容器。 一、索引 ByteBuf 提供两个指针变量支持读和写操作,读操作使用 readerIndex,写操作使用 writerIndex。如下图: 二、索引管理 三、查询操作 可以使用以 ByteBu 阅读全文
posted @ 2018-05-10 17:48 Just_for_Myself 阅读(3592) 评论(0) 推荐(0) 编辑
摘要:该节主要讲解 Netty 的构成部分。 一、Channel 它代表一个用于连接到实体如硬件设备、文件、网络套接字或程序组件,能够执行一个或多个不同的 I/O 操作的开放连接。可以比作传入和传出数据的传输工具。 二、Callback(回调) 它就是一个方法,提供给另一种方法作为引用,这样后者就可以在某 阅读全文
posted @ 2018-05-09 20:15 Just_for_Myself 阅读(2645) 评论(0) 推荐(0) 编辑
摘要:在这个例子中,我在服务器和客户端连接被创立时发送一个消息,然后在客户端解析收到的消息并输出。并且,在这个项目中我使用 POJO 代替 ByteBuf 来作为传输对象。 一、服务器实现 1. 首先我们自定义传输数据对象 2. 然后我们需要自定义服务器数据编码类 3. 也需要自定义服务器的业务逻辑类,如 阅读全文
posted @ 2018-05-09 19:23 Just_for_Myself 阅读(4387) 评论(0) 推荐(1) 编辑
摘要:一、项目创建 在 Eclipse 中右键,新建->项目->Maven->Maven Project->下一步->选择 quickstart 下一步->设置如图(参数自取) 点击完成。 项目会自动创建 pom.xml 文件,打开该文件,点击 Dependencies标签->Add..,设置如图(参数由 阅读全文
posted @ 2018-05-09 17:24 Just_for_Myself 阅读(42263) 评论(4) 推荐(4) 编辑
摘要:在 C# 代码中,有些时候只知道方法的名字(string),需要调用该方法,那么就需要用到 C# 的反射机制。下面是一个简单的 demo。 需要注意的是,类名是命名空间+类名,不然会找不到类。 阅读全文
posted @ 2018-05-07 11:48 Just_for_Myself 阅读(21486) 评论(2) 推荐(2) 编辑
摘要:该文讲解 C# 对 mysql 数据库进行增删改查操作。 1. 安装数据库,注意要安装 Connector NET。 2. 引入 MySql.Data.dll,添加项目引用,该文件一般位置为:C:\Program Files (x86)\MySQL\Connector NET xx\Assembli 阅读全文
posted @ 2018-05-05 17:23 Just_for_Myself 阅读(12068) 评论(0) 推荐(1) 编辑
该文被密码保护。
posted @ 2018-05-03 17:50 Just_for_Myself 阅读(16) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示