|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
在CSDN里搜索一下“初学”两字,竟有三百余篇帖子(也许更多)。有些帖子说,有了asp的基础,只要15天就能很熟悉了,我甚感自己的愚钝。更多帖子是向大家请教初学者适合看书。两个多月的时间(当然平常杂事比较多。<p>ESFramework,是一套可高度复用的、天真的、纯真而又壮大的.NET通讯框架,全体接纳C#编写。ESFramework内置了对Tcp和Udp的撑持,而且撑持文本协定和流协定,供应了多种收集引擎供服务端和客户端开辟职员轻松利用。接纳ESFramework框架,使得您不必要懂得Socket、不必再体贴底层与通讯相干的统统噜苏的事变,就能够在一个更高的条理上更快地开辟属于您的高效不乱的收集通讯使用。像IM体系、视频集会体系、数据收罗体系等,但凡必要散布式通讯的体系都可使用ESFramework框架。
一.ESPlus的文件传送流程
ESPlus界说了文件传送的尺度流程,能够用下图暗示:
(1)由发送方倡议传送文件的哀求。
(2)吸收方复兴批准大概回绝吸收文件。假如拒收,则流程停止;不然进进下一步。
(3)发送方发送文件数据,吸收方吸收文件数据。
(4)假如文件传送过程当中,吸收方或发送方失落线大概作废文件传送,则文件传送被中止,流程停止。假如文件传送历程一向一般,则到最初完成文件的传送。
有几点必要申明一下:
(1)发送方能够是客户端,也能够是服务器;吸收方也是云云。但不管发送方和吸收方的种别怎样,它们都恪守这一文件传送流程;就像ESFramework一切的通讯引擎都公用统一套动静处置骨架流程一样。
(2)当吸收方批准吸收后,框架会主动搜刮是不是存在婚配的续传项目,若存在,则会启动断点续传。固然,我们能够经由过程文件吸收办理器的属性来把持断点续传功效是不是开启。关于断点续传的更多内容,能够参考ESFramework4.0文件断点续传道理与完成。
(3)举行文件传送的线程是由框架主动把持的,只需发送方收到了吸收方批准吸收的复兴,框架就会主动在背景线程中发送文件数据包;一样,此时吸收方也会主动处置吸收到的文件数据包。
(4)发送方或吸收方都可随时作废正在传送的文件。
(5)当文件传送被中止或完成时,发送方和吸收方城市有响应的事务关照。
二.ESPlus用于撑持文件传送的基本举措措施
1.TransmittingFileInfo
不管是发送方仍是吸收方,针对每一个文件传送义务,都必要有个工具来暗示它,TransmittingFileInfo即是一个文件传送项目标封装,内里包括了相似发送者ID、吸收者ID、文件称号等相干信息。
TransmittingFileInfo的年夜部分属性关于发送方和吸收方都是无效的,而有几个属性只对发送方无效(好比SendingFileParas),有几个属性只对吸收方无效(如LocalSaveFilePath),这些在匡助文档中都有具体的申明。并且,有些属性(如OriginFileLastUpdateTime)的存在是用于撑持断点续传功效的。
2.FileTransDisrupttedType
ESPlus利用FileTransDisrupttedType列举界说了一切大概招致文件传送中止的缘故原由:
<olclass="dp-c">publicenumFileTransDisrupttedType{///<summary>///本人自动作废///</summary>ActiveCancel,///<summary>///对方作废///</summary>DestCancel,///<summary>///对方失落线///</summary>DestOffline,///<summary>///收集中止、本人失落线///</summary>SelfOffline,///<summary>///对方回绝吸收文件///</summary>DestReject,///<summary>///别的缘故原由,如文件读取失利等///</summary>OtherCause}
3.IFileTransferingEvents接口
ESPlus界说了IFileTransferingEvents接口,用于表露一切与文件传送相干的形态和事务:
<divclass="code"><olclass="dp-c">publicinterfaceIFileTransferingEvents{///<summary>///当某个文件入手下手传送时,触发该事务。///</summary>eventCbGeneric<TransmittingFileInfo>FileTransStarted;///<summary>///当某个文件续传入手下手时,触发该事务。(将不再触发FileTransStarted事务)///</summary>eventCbGeneric<TransmittingFileInfo>FileResumedTransStarted;///<summary>///文件传送的进度。参数为fileID(文件编号),total(文件巨细),transfered(已传送字节数)///</summary>eventCbFileSendedProgressFileTransProgress;///<summary>///文件传送中止时,触发该事务。///</summary>eventCbGeneric<TransmittingFileInfo,FileTransDisrupttedType>FileTransDisruptted;///<summary>///文件传送完成时,触发该事务。///</summary>eventCbGeneric<TransmittingFileInfo>FileTransCompleted; |
|