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、心跳组件

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

  • 相关阅读:
    chrome安装vue-devtools
    企业网络设计
    nginx的安装
    Typora 的使用
    如何学习dubbo?
    关于原码反码和补码以及byte&0xff
    HttpClient以及连接池的使用
    计算机网络读书笔记:tcp面试常见问题都在里面了
    接口类是否继承自Object?
    数据挖掘会议记录
  • 原文地址:https://www.cnblogs.com/onliny/p/2620502.html
Copyright © 2011-2022 走看看