本文参考 本篇文章是对<Netty In Action>一书第二章"你的第一款 Netty 应用程序"的学习摘记,主要内容为编写 Echo 服务器和客户端 第一款应用程序的功能 Echo 客户端和服务器之间的交互十分简单:在客户端建立一个连接之后,它会向服务器发送一个或多个消息,反过来,服务器又会将每个消息回送给客户端.虽然我们的主要关注点可能是编写基于 Web 的用于被浏览器访问的应用程序,但它也充分地体现了客户端/服务器系统中典型的请求-响应交互模式. 虽然这只是一个简…
在Netty学习笔记(一) 实现DISCARD服务中,我们使用Netty和Python实现了简单的丢弃DISCARD服务,这篇,我们使用Netty实现服务端和客户端交互的需求. 前置工作 开发环境 JDK8 Netty版本:5.0.0.Alpha2 集成环境:IDEA 构建工具:Gradle 依赖 compile group: 'io.netty', name: 'netty-all', version: '5.0.0.Alpha2' compile group: 'org.projectlom…
本文参考 本篇文章是对<Netty In Action>一书第八章"引导"的学习摘记,主要内容为引导客户端和服务端.从channel内引导客户端.添加ChannelHandler和使用ChanneOption 引导类层次结构 服务端ServerBootstrap和客户端Bootstrap都继承和实现了抽象类AbstractBootstrap 抽象类AbstractBootstrap实现了Cloneable接口,当需要创建多个具有类似配置或者完全相同配置的Channel时,不…
本文参考 本篇文章是对<Netty In Action>一书第六章"ChannelHandler和ChannelPipeline",主要内容为ChannelHandler API .ChannelPipeline API.检测资源泄漏和异常处理 这一篇文章讲到的内容,在前面几篇文章中或多或少已有涉及,那些重复的部分算作是回顾吧 Channel的生命周期 registered(Channel已经被注册到EventLoop) -> active(Channel处于活动状态…
Netty学习——基于netty实现简单的客户端聊天小程序 效果图,聊天程序展示 (TCP编程实现) 后端代码: package com.dawa.netty.chatexample; import io.netty.bootstrap.ServerBootstrap; import io.netty.channel.ChannelFuture; import io.netty.channel.EventLoopGroup; import io.netty.channel.nio.NioEven…
本文参考 我在博客内关于"Netty学习摘记"的系列文章主要是对<Netty in action>一书的学习摘记,文章中的代码也大多来自此书的github仓库,加上了一部分我自己的注释内容.之所以开始对Netty的学习,是因为在高并发网络编程和大数据生态圈都有它活跃的身影,例如Cassandra.ElasticSearch.Spark和ZooKeeper中就有Netty框架的应用,便对它产生了兴趣,若要再说的实际一点,面试官也很有可能问网络高并发和关于netty的东东呢 本…
Pthread线程使用模型之三 客户端/服务端模型(Client/Server) 场景 1.在客户端/服务端模型时,客户端向服务端请求一些数据集的操作. 服务端执行执行操作独立的(多进程或跨网络)– 客户端可以等待服务端响应再做其他任务或者做一些并行的操作,在一段时间后被通知时再去查询结果. 虽然客户端等待服务端是最简单的方式, 但是这种情况极少使用, 因为它不具备速度和性能优势, 同步的只适合获取一些普通的资源. 比如Socket i/O的非阻塞或异步模型. 2.在做一些复杂的命令行程序时(单…
win10操作系统下oracle11g客户端/服务端的下载安装配置卸载总结 一:前提 注意:现在有两种安装的方式 1. oracle11g服务端(64位)+oracle客户端(32位)+plsql(32位) 2. oracle11g服务端(32位)+plsql(32位)   这里我选择的是第二种 原因是 :首先需要明确oracle的服务端自带客户端,所以正常来说安装了oracle服务端之后就不需要安装oracle客户端了,但是plsql只有32位的,需要32位的客户端来启动,但是64位的服务端带…
上节我们介绍了开发netty项目所必需的开发环境及工具的使用,这节我们来写第一个netty项目 开发步骤 第一步:打开https://search.maven.org 找到netty依赖库 第二步:打开上节创建的项目,修改build.gradle文件如下图: 第三步:新建类com.ssy.netty.MyServer.class package com.ssy.netty; import io.netty.bootstrap.ServerBootstrap; import io.netty.ch…
本文参考 本篇文章是对<Netty In Action>一书第三章"Netty的组件和设计"的学习摘记,主要内容为Channel.EventLoop.ChannelFuture.ChannelHandler和ChannelPipeline等组件的深入介绍 原书第三章中对编解码器有一定介绍,但是在原书后有一个专门的章节讲解,所以本篇文章未摘记此内容 Channel接口 A nexus to a network socket or a component which is ca…