中转传输概要设计
中转传输的消息架构为模拟MFC的消息架构,请参考我的上一篇文章。
1.概述
中转服务器采用事件驱动的方式,与socket结合。其层次如下:
在事件驱动层中,将相关消息发送给对应的用户事件处理函数处理。
在命令解析层中发送和接收数据。在接收到数据时,需要验证数据合法性,收到一帧完整的数据后调用消息驱动层的send相关方法,调用该类方法后会将消息传递给用户事件处理中。
在命令解析层中,会引入socket控制,同时管理多个socket的读。
在用户事件处理中,需要像MFC那样,定义消息处理的映射表。只有在用户层定义了消息映射表,命令解析层接收到的命令才能被处理,否则被丢弃。
2.事件驱动层
消息分两种:post类消息和Send类消息。
Post类消息首先需要将消息放入消息列表中,由消息处理线程负责派发消息,所以消息的发送与处理是异步的。
Send类消息不需要经过消息列表,直接由send相关方法派发消息,所以只有等待消息被处理完成send方法才返回。
post事件驱动流程图:
事件驱动贯穿整个流程,一般事件驱动流程退出,则程序退出。
2.1事件信息
事件分为如下两种:
a.整型事件,用一个整型数字标志一个事件,该事件参考MFC的基本结构;
b.字符串事件,以命令的形式定义一个事件;
事件目标:
事件目标可以是目标的直接handle,也可以是目标的名称。
2.2基本事件
我们规定在1024以内的整型事件为基本事件,由事件驱动层定义。用户可以定义任何大于1024的事件,不同对象之间事件号可以重复。
3.Socket控制
在socket控制中,主要监控socket的读和异常状态。对于写上层可以直接调用send发送数据。
外部如果需要释放已经放入到控制列表的sokcet,必须调用控制层的接口。
4.用户事件处理
时序图如下:
登录、心跳和退出流程
转发文件流程图
分享到:
相关推荐
中转服务器,SSL中转线路搭建
闲来无事自己搭建了一个加密的鱼池中转服务器,有需要的可以拿去用了
基于Linux的网络中转服务器的设计与实现.pdf
客户端和服务器在不同的网段内,它们之间不能直接通过TCP连接,但是有一台机器(暂时称为转发器)有双网卡,两块网卡分别在客户端和服务器端的网段内,这样转发器就能分别和客户端即服务器建立连接,并来回传输数据
需求 1:手机端或者其他端可以对设备进行回控,并查看设备各种运行状态,接收报警推送等。 2:同时支持在局域网、广域网、互联网访问,尤其是互联网访问。 ... 4:设备不在线要给出反馈信息提示以便分析。...
HTML5+JS贴图库批量上传示例,无需jQuery、Flash、中转服务器等。 相比swfupload:无需Flash组建支持,支持手机,节省内存无卡顿。 相比PHPSDK:无需中转服务器,省去先传自己主机再传贴图库的繁琐过程。 相比...
HTML5+JS贴图库批量上传示例,无需jQuery、Flash、中转服务器等。 相比PHPSDK:无需中转,省去本地资源消耗。 相比Plupload:无需jQuery,代码仅2KB,轻量小巧。 相比swfupload:无需Flash组建支持,支持手机,节省...
HTML5+JS贴图库批量上传示例,无需jQuery、Flash、中转服务器等。 相比PHPSDK:无需中转,省去本地资源消耗。 相比Plupload:无需jQuery,代码仅2KB,轻量小巧。 相比swfupload:无需Flash组建支持,支持手机,节省...
FileTransferServer:解决防盗链图片使用问题的中转服务器。为项目 ImageKeeper 备用的 web 服务器。
中转服务器零基础教程Minerproxy.zip
搭建中转代理程序 实现了自定义抽水、0抽纯转发等 支持tcp、ssl加密 核心代码已开源,本程序包含:web控制台、shell脚本、windows客户端等。 1、准备好你的linux服务器 2、执行(按顺序执行代码): 3、开启babyProxy...
像华测、南方一样提供中转服务器,是个进步。
简单易上手搭建ETH中转服务器教程,实现私有化节点,加密运行,支持抽水。降低延迟+防止掉线+纯净转发+自定义抽水+小白零基础瞬间精通教程(本地设置、云服务器架设)。
搭建本地邮箱,用于中转的本地服务器.
Qt编写的一些开源的demo,代码简洁易懂注释详细,每个都是独立项目,可直接运行。。。。
主要介绍了Node做中转服务器转发接口的相关资料,需要的朋友可以参考下
即可实现远程camera监控
运行在中转服务器上面。采用了Nutty框架,实现了数据中转,客户端发送数据给中转服务器后,数据会转发给另外一台服务器上面。只需修改ip及端口即可。
利用Python·实现中转服务器聊天,利用服务器进行中转。可以实现与多个客户端进行通讯。采用多线程技术。