分享到:

【SINC】网络模块架构

1、简介

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

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

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

2、架构介绍

网络模块架构

 

3、网络模块的状态

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

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

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

4、心跳组件

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

posted @ 2012-08-02 18:09  onliny  阅读(437)  评论(0)    收藏  举报