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()

  • 相关阅读:
    Pull Request
    选择器
    常见HTTP状态码
    286. Walls and Gates
    200. Number of Islands
    1. Two Sum
    名片管理系统(python实现)
    k近邻算法(简单版)
    基数排序
    递归算法的调试
  • 原文地址:https://www.cnblogs.com/wjlstation/p/7835085.html
Copyright © 2011-2022 走看看