| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> 网络协议 -> Netty第一个入门实例-TCP服务,mysql调优面试题 -> 正文阅读 |
|
[网络协议]Netty第一个入门实例-TCP服务,mysql调优面试题 |
io.netty netty-all 4.1.20.Final 创建服务端的handler,主要是处理客户端提交的请求的。 package com.dpb.netty.tcp; import io.netty.buffer.ByteBuf; import io.netty.buffer.Unpooled; import io.netty.channel.ChannelHandlerContext; import io.netty.channel.ChannelInboundHandlerAdapter; import io.netty.util.CharsetUtil; /**
*/ public class NettyServerHandler extends ChannelInboundHandlerAdapter { /**
*/ @Override public void channelRead(ChannelHandlerContext ctx, Object msg) throws Exception { System.out.println(“客户端请求到了…” + ctx.channel().remoteAddress()); ByteBuf buf = (ByteBuf) msg; System.out.println(“客户端发送的数据是:” +buf.toString(CharsetUtil.UTF_8)); } /**
*/ @Override public void channelReadComplete(ChannelHandlerContext ctx) throws Exception { // writeAndFlush 是组合方法 ctx.writeAndFlush(Unpooled.copiedBuffer(“你好啊,客户端…_”,CharsetUtil.UTF_8)); } } 创建服务端 package com.dpb.netty.simple; import io.netty.bootstrap.ServerBootstrap; import io.netty.channel.ChannelFuture; import io.netty.channel.ChannelInitializer; import io.netty.channel.ChannelOption; import io.netty.channel.EventLoopGroup; import io.netty.channel.nio.NioEventLoopGroup; import io.netty.channel.socket.SocketChannel; import io.netty.channel.socket.nio.NioServerSocketChannel; /**
*/ public class NettyServerDemo { public static void main(String[] args) { // 创建对应的 线程池 // 创建Boss group EventLoopGroup boosGroup = new NioEventLoopGroup(1); // 创建 workgroup EventLoopGroup workGroup = new NioEventLoopGroup(); // 创建对应的启动类 ServerBootstrap bootstrap = new ServerBootstrap(); try{ // 设置相关的配置信息 bootstrap.group(boosGroup,workGroup) // 设置对应的线程组 .channel(NioServerSocketChannel.class) // 设置对应的通道 .option(ChannelOption.SO_BACKLOG,1024) // 设置线程的连接个数 .childHandler(new ChannelInitializer() { // 设置 /**
*/ @Override protected void initChannel(SocketChannel socketChannel) throws Exception { socketChannel.pipeline().addLast(new NettyServerHandler()); } }); System.out.println(“服务启动了…”); // 绑定端口 启动服务 ChannelFuture channelFuture = bootstrap.bind(6668).sync(); // 对关闭通道进行监听 channelFuture.channel().closeFuture().sync(); }catch (Exception e){ }finally { // 优雅停服 boosGroup.shutdownGracefully(); workGroup.shutdownGracefully(); } } } 客户端handler主要是发送请求给客户端及处理服务端返回的信息。 package com.dpb.netty.simple; import io.netty.buffer.ByteBuf; import io.netty.buffer.Unpooled; import io.netty.channel.ChannelHandlerContext; import io.netty.channel.ChannelInboundHandlerAdapter; import io.netty.util.CharsetUtil; /**
*/ public class NettyClientHandler extends ChannelInboundHandlerAdapter { /**
*/ @Override public void channelActive(
ChannelHandlerContext ctx) throws Exception { // 发送数据 System.out.println(“连接上了 服务器…”); ctx.writeAndFlush(Unpooled.copiedBuffer(“哈哈 你好呀!!!”, CharsetUtil.UTF_8)); } /**
*/ @Override public void channelRead(ChannelHandlerContext ctx, Object msg) throws Exception { ByteBuf buf = (ByteBuf) msg; System.out.println(“服务端返回的信息:” + buf.toString(CharsetUtil.UTF_8)); } } 客户端用来连接服务器 package com.dpb.netty.simple; import io.netty.bootstrap.Bootstrap; import io.netty.channel.ChannelFuture; import io.netty.channel.ChannelInitializer; import io.netty.channel.EventLoopGroup; import io.netty.channel.nio.NioEventLoopGroup; import io.netty.channel.socket.SocketChannel; |
|
网络协议 最新文章 |
使用Easyswoole 搭建简单的Websoket服务 |
常见的数据通信方式有哪些? |
Openssl 1024bit RSA算法---公私钥获取和处 |
HTTPS协议的密钥交换流程 |
《小白WEB安全入门》03. 漏洞篇 |
HttpRunner4.x 安装与使用 |
2021-07-04 |
手写RPC学习笔记 |
K8S高可用版本部署 |
mySQL计算IP地址范围 |
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 | -2024/11/26 11:34:39- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |