zoukankan      html  css  js  c++  java
  • 【SINC】网络模块架构

    1、简介

      在系统中可以划分3个层次,网络服务,网络模块,业务模块。其中网络服务负责建立物理连接,发送数据包和解析数据包,并根据当前的网络状态产生对应的网络事件,同时把事件通知相应的监听者。网络模块处于业务模块和网络服务之间,主要负责对网络服务进行管理,对业务模块提供网络服务。

      网络服务主要使用异步编程方式来实现,并且使用Java NIO实现TCP网络连接和数据的接收与发送。

      网络模块向业务模块发布API。业务模块通过API,完成数据包发送。当网络模块接收到数据包后,使用android的消息机制,通知到业务模块。

    2、架构介绍

    网络模块架构

    3、网络模块的状态

      网络模块的状态有3种,影响因素有两个方面。第一种,没有建立物理连接。第二种,已经建立物理连接,没有建立逻辑连接。第三种,已经建立逻辑连接。

      在第三种状态中,业务模块可以直接发送数据包。第二种状态中,把数据包放入网络模块的缓冲区中,等待逻辑连接完成。第一种状态中,把数据放入网络模块中,发起物理连接。当物理连接完成后,会进行逻辑连接。

      物理连接 逻辑连接 处理方式
    1 N N 发起物理连接,把数据包放入缓冲区
    2 Y N 把数据包放入缓冲区
    3 Y Y 直接发送数据包

    4、心跳组件

      心跳组件是一个线程,定时的发送心跳数据包。当网络模块断开连接的时候,可以停止心跳。

  • 相关阅读:
    vue-生命周期图示 注解
    vue-组件嵌套之——父组件向子组件传值
    vue-框架模板的源代码注释
    vue-小demo、小效果 合集(更新中...)
    Gulp-自动化编译sass和pug文件
    JS
    Node.js- sublime搭建node的编译环境
    sublime--package control的配置与插件安装
    git-常用命令一览表
    java面试题:jvm
  • 原文地址:https://www.cnblogs.com/onliny/p/2620502.html
Copyright © 2011-2022 走看看