zoukankan      html  css  js  c++  java
  • netty拆包粘包

    客户端

    tcp udp    

    socket网络编程接口

    http/webservice mqtt/xmpp 自定义RPC (dubbo)

    应用层 

    服务端

     ServerSocket ss = new serverSocket(8088)

    final Socket sc = ss.accept();

    socket.getOutputStream();

    String requestBody="i+1";

    outputStream.write(requestBody.getBytes());

    socket.close();

    用网络编程框架 netty 三层架构  网络层(nio处理socket) 、职责链(调度)、 应用层(编解码)、业务代码

     tomcat也是三层架构  网络层(connector nio /bio实现)、适配层、servlet容器、 业务处理servlet  (httprequest httpresponse)

     netty 怎么写

    channelPiepeline p = 

    p.bind(8080)

     收到数据

    自定义rpc dubbo 单一长连接立   建立一个连接后不会立马断开  i+1 i+1 i+1 正常的一个包  分包拆包  

    短连接  http请求响应模型 一个请求一个响应 一次响应 连接池 tcp握手  i+1 响应  OK 完整断开连接 

     拆包 完整的数据分成多个网络包

    粘包  两个不想干的数据合成一个包

    操作系统和硬件 

    A系统调用B系统调用不同的参数需要做区分

    加入解码器  p.addlast(new XDecoder())

    decode()

  • 相关阅读:
    Atom 和 markdown 基本使用
    c++11 正则表达式基本使用
    Emacs 之窗口管理
    Emacs 之列编辑模式
    Emacs 之查看帮助
    使用 json_in_java
    Linux服务 httpd
    Linux 编译安装BIND
    Kerberos
    Linux服务 DNS&BIND
  • 原文地址:https://www.cnblogs.com/wjlstation/p/7835085.html
Copyright © 2011-2022 走看看