当前位置: 首页 > news >正文

厦门微信网站建设/seo技术最新黑帽

厦门微信网站建设,seo技术最新黑帽,长沙网站建设推荐,什么建设网站Netty入门 1.Netty介绍 (1)百度百科介绍: Netty是由JBOSS提供的一个java开源框架。Netty提供异步的、事件驱动的网络应用程序框架和工具,用以快速开发高性能、高可靠性的网络服务器和客户端程序。 也就是说,Netty 是一…

Netty入门

1.Netty介绍

(1)百度百科介绍:

Netty是由JBOSS提供的一个java开源框架。Netty提供异步的、事件驱动的网络应用程序框架和工具,用以快速开发高性能、高可靠性的网络服务器和客户端程序。
也就是说,Netty 是一个基于NIO的客户、服务器端编程框架,使用Netty 可以确保你快速和简单的开发出一个网络应用,例如实现了某种协议的客户、服务端应用。Netty相当于简化和流线化了网络应用的编程开发过程,例如:基于TCP和UDP的socket服务开发。
“快速”和“简单”并不用产生维护性或性能上的问题。Netty 是一个吸收了多种协议(包括FTP、SMTP、HTTP等各种二进制文本协议)的实现经验,并经过相当精心设计的项目。最终,Netty 成功的找到了一种方式,在保证易于开发的同时还保证了其应用的性能,稳定性和伸缩性。

(2)官网介绍:netty.io

Netty is an asynchronous event-driven network application framework
for rapid development of maintainable high performance protocol servers & clients.

1422573-20181011104723601-328841678.png

(3)参考资料:

  1. 参考书籍:Netty实战(Norman Maurer & Marvin Allen Wolfthal)
  2. 参考官方文档:https://netty.io/wiki/user-guide.html
  3. 参考网址:https://ifeve.com/tag/netty/

2.程序功能概述

1422573-20181011104916555-910109393.png

客户端向服务器发送HelloNetty-Server!服务器向客户端返回Hello Netty-Client!

3.程序实现

  1. 服务端ChannelHandler

    package com.xm.netty;import io.netty.buffer.ByteBuf;
    import io.netty.buffer.Unpooled;
    import io.netty.channel.ChannelFutureListener;
    import io.netty.channel.ChannelHandlerContext;
    import io.netty.channel.ChannelInboundHandlerAdapter;
    import io.netty.util.CharsetUtil;public class ServerHandler extends ChannelInboundHandlerAdapter {@Overridepublic void channelRead(ChannelHandlerContext ctx, Object msg) throws Exception {ByteBuf in = (ByteBuf) msg;System.out.println("服务器接收:"+in.toString(CharsetUtil.UTF_8));in.clear();String str = "Hello Netty-Client!";in.writeBytes(str.getBytes());ctx.write(in);}@Overridepublic void channelReadComplete(ChannelHandlerContext ctx) throws Exception {ctx.writeAndFlush(Unpooled.EMPTY_BUFFER).addListener(ChannelFutureListener.CLOSE);}   @Overridepublic void exceptionCaught(ChannelHandlerContext ctx, Throwable cause) throws Exception {cause.printStackTrace();ctx.close();}}
    
  2. 服务端Server

    package com.xm.netty;import java.net.InetSocketAddress;import io.netty.bootstrap.ServerBootstrap;
    import io.netty.channel.Channel;
    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.nio.NioServerSocketChannel;public class Server {private final int port;public Server(int port) {this.port = port;}public static void main(String[] args) {int port = 8989;try {new Server(port).start();} catch (InterruptedException e) {// TODO Auto-generated catch blocke.printStackTrace();}}private void start() throws InterruptedException {final ServerHandler serverHandler = new ServerHandler();EventLoopGroup group = new NioEventLoopGroup();try {ServerBootstrap bootstrap = new ServerBootstrap();bootstrap.group(group).channel(NioServerSocketChannel.class).localAddress(new InetSocketAddress( port)).childHandler(new ChannelInitializer() {@Overrideprotected void initChannel(Channel ch) throws Exception {ch.pipeline().addLast(serverHandler);}});ChannelFuture future = bootstrap.bind().sync();future.channel().closeFuture().sync();} finally {group.shutdownGracefully().sync();}}}
    
  3. 客户端ChannelHandler

    package com.xm.netty;import io.netty.buffer.ByteBuf;
    import io.netty.buffer.Unpooled;
    import io.netty.channel.ChannelHandlerContext;
    import io.netty.channel.SimpleChannelInboundHandler;
    import io.netty.util.CharsetUtil;public class ClientHandler extends SimpleChannelInboundHandler<ByteBuf> {@Overridepublic void channelActive(ChannelHandlerContext ctx) throws Exception {ctx.writeAndFlush(Unpooled.copiedBuffer("Hello Netty-Server!",CharsetUtil.UTF_8));}@Overrideprotected void channelRead0(ChannelHandlerContext ctx, ByteBuf msg) throws Exception {System.out.println("客户端接收到消息:"+msg.toString(CharsetUtil.UTF_8));}@Overridepublic void exceptionCaught(ChannelHandlerContext ctx, Throwable cause) throws Exception {cause.printStackTrace();ctx.close();}}
    
  4. 客户端Client

    package com.xm.netty;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;
    import io.netty.channel.socket.nio.NioSocketChannel;public class Client {private final int port;private final String host;public Client(int port, String host) {this.port = port;this.host = host;}public static void main(String[] args) {String host = "127.0.0.1";int port = 8989;try {new Client(port, host).start();} catch (InterruptedException e) {// TODO Auto-generated catch blocke.printStackTrace();}}private void start() throws InterruptedException {EventLoopGroup group = new NioEventLoopGroup();try {Bootstrap bootstrap = new Bootstrap();bootstrap.group(group).channel(NioSocketChannel.class).remoteAddress(host, port).handler(new ChannelInitializer<SocketChannel>() {@Overrideprotected void initChannel(SocketChannel ch) throws Exception {ch.pipeline().addLast(new ClientHandler());}});ChannelFuture future = bootstrap.connect().sync();future.channel().closeFuture().sync();} finally {group.shutdownGracefully().sync();}}}
    
  5. 导入依赖

    <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"><modelVersion>4.0.0</modelVersion><groupId>com.xm</groupId><artifactId>netty</artifactId><version>0.0.1-SNAPSHOT</version><dependencies><dependency><groupId>io.netty</groupId><artifactId>netty-all</artifactId><version>4.1.16.Final</version>
    </dependency></dependencies>
    </project>

4.运行结果:

  1. 服务端:

    服务器接收:Hello Netty-Server!

  2. 客户端:

    客户端接收到消息:Hello Netty-Client!

转载于:https://www.cnblogs.com/TimerHotel/p/netty01.html

http://www.jmfq.cn/news/5281705.html

相关文章:

  • 素材网站推荐/济南网站优化公司
  • 企业产品宣传册制作/如何进行seo
  • 企业公司开发票的作用/襄阳seo优化排名
  • 不关闭网站备案/网上国网app推广
  • 四川省住房建设厅官方网站/百度网盘搜索入口
  • 房县建设局网站/新闻最新热点
  • wordpress无法安装这个包/上海seo优化外包公司
  • 南宁培训网站建设/seo权重优化
  • 湖北省建筑信息平台/seo排名工具给您好的建议下载官网
  • 长沙南站建站/企点官网
  • 网站备案经验/windows优化大师怎么样
  • 奉新网站建设/济南seo快速霸屏
  • php仿博客园网站/海外短视频软件
  • 公司网站建设费用多少/漯河网络推广哪家好
  • 网站建设毕业论文/最新消息
  • asp网站开发的实训/微信营销案例
  • 福州网站建设方案书/网络服务包括
  • 义乌网站建设联系方式/seo的主要内容
  • 金融投资网站模板/百度免费推广方法
  • 做网站中二级导航链接到一级导航/免费b站推广网站短视频
  • vs哪个版本做网站好/seo免费推广软件
  • 网站建设基本流程视频/青岛seo精灵
  • 政府网站和政务新媒体建设管理/知乎seo优化
  • 做网站代下/上海网站推广排名公司
  • 腾讯云网站建设/简单网页制作
  • 一次性付费做网站/网站推广的10种方法
  • 微网站外链/互联网推广与营销
  • 做去态网站要学java吗/推广有什么好方法
  • 印刷厂网站模板/怎样免费推广自己的网站
  • php学多久可以做网站/企业品牌推广方案