zoukankan      html  css  js  c++  java
  • netty 学习(1)

      Netty使用:通过BootStrap来启动。而BootStrap主要分为两类:1.面向连接(TCP)的(ClientBootStrap和ServerBootStrap);2. 非面向连接(UDP)的(ConnectionlessBootstrap).

      Channel分为ChannelFactory和ChannelPipelineFactory。前者主要生产网络通讯相关的Channel实例和ChannelSink实例;后者主要用于具体的传输数据的处理。

      使用步骤

    1. 实例化一个BootStrap,并通过构造方法指定一个ChannelFactory;
    2. 向bootstrap实例注册一个自己实现的PipelineFactory;
    3. 服务器:bootstrap.bind(new InetSocketAddress(port)),等待客户端来连接;客户端:bootstrap.connect(new InetSocketAddress(host, post))取得一个future,Netty会去连接远程主机。完成连接后,会发起类型为CONNECTED的ChannelStateEvent,并且开始在自定义的Pipeline里面流转。
    4. 如果注册的handler有这个事件的响应方法,那么就会被调用到。

      处理策略

      NIO:BOOS(1个)处理连接接入,WORKER(多个)处理boss传递过来的channel数据,并触发相应事件传递给pipeline进行数据处理。

      BIO:

    参考:Netty代码分析

    ------------------------------------------------------------------------------------------------------------------------------------------ 需要荷兰版牛栏、荷兰美素、母婴用品的攻城师、设计师朋友,欢迎关顾【七彩母婴店】【http://qicaoyun.taobao.com】。凡是从博客园得知信息的,全店商品,均可优惠,请告知客服哦。你也可以通过淘代码【D5867219】,在淘宝搜索到我们。收藏有礼哦!
  • 相关阅读:
    git常用操作的总结
    Vue全局错误捕获
    Vue全局布局组件的设计
    Python 创建守护进程
    常用代码集合
    Linux -- 终端命令快捷键汇总
    MySQL -- 查询结果 直接导出至本地文件
    Linux -- 守护进程
    ConcurrentWebSocketSessionDecorator(并发安全的websocket) The remote endpoint was in state [TEXT_PARTIAL_WRITING]
    Ubuntu安装docker
  • 原文地址:https://www.cnblogs.com/javawer/p/3240223.html
Copyright © 2011-2022 走看看