一种数据的传输方法及系统的制作方法

文档序号:7649077阅读:85来源:国知局
专利名称:一种数据的传输方法及系统的制作方法
技术领域
本发明属于数字电—见领域,尤其涉及一种数据的传输方法及系统。
背景技术
在网络服务器系统中,对于客户端的连接请求,其处理方式采用两种模型 一种是接收端采用迭代服务器模型,依次处理客户端的请求;另一种是接收端 采用并发服务器模型,对于每个客户请求产生一个进程去处理。接收端采用并 发服务器模型,预先派生一些子进程处理客户请求;接收端采用并发服务器模 型,对于每个客户产生一个线程去处理;接收端采用并发服务器模型,预先派 生一些线程去处理。
现有技术一般都是接收端采用并发服务器模型,预先派生一些线程去处理 客户端请求,每当有一个客户端请求过来,就将这个请求,提交到一个线程池里 面,直到这个请求处理完为止。
现有技术对于套接字中间状态、协议的执行状态以及数据执行状态的流转 没有划分或者划分的不合理或者没有引入这种机制,并且套接字没有采用通知 机制或者不完善,当网络事件发生时,不能及时、准确的通知应用层。

发明内容
本发明实施例的目的在于提供一种数据传输方法,旨在解决现有技术中网 络数据传输并发量大,当网络事件发生时,不能及时准确通知应用层的网络连 接问题。
本发明实施例是这样实现的, 一种数据的发送方法,所述方法包括下述步

建立套接字,并发送网络连接请求;
当判断所述连接成功时,注册所述套接字的通知插槽;
判断通过所述套接字写数据是否成功,当写数据成功时,则读取数据接收 端的回应包;当写数据不成功时,将所述套接字加入工作队列,并不断检测所 述套接字的状态,当所述套接字可写时,通知所述套接字可写数据。
本发明实施例的另一目的在于提供一种数据的接收方法,所述方法包括下 述步骤
建立一监听套4妄字,并判断所述套接字监听是否成功;
判断所述监听套接字是否监听到网络连接请求;
当连接成功时,监听的套接字重新选择一个新的套接字;
判断通过所述新套接字读取数据是否成功,当读取数据成功时,则读取数 据发送端的请求包;
当读取数据不成功时,将所述新套接字加入工作队列,并 不断检测所述新套接字的状态,当所述新套接字可读时,通知所述新套接字读 数据。
本发明实施例的另一目的在于提供一种数据发送系统,所迷系统包括 套接字建立模块,用于建立套接字; 连接请求发送模块,用于发送网络连接请求;
通知插槽注册模块,用于当判断所述连接成功时,注册所述套接字的通知 插槽;以及
套接字写数据判断处理模块,用于判断通过所述套接字写数据是否成功, 当写数据成功时,则读耳又数据接收端的回应包;当写数据不成功时,将所述套 接字加入工作队列,并不断检测所述套接字的状态,当所述套接字可写时,通 知所述套接字可写数据。
本发明实施例的另一目的在于提供一种数据接收系统,所述系统包括
监听套接字建立判断模块,用于建立一监听套接字,并判断所述套接字监 听是否成功;
连接请求判断模块,用于判断所述监听套接字是否监听到网络连接请求;
新套接字选择模块,用于当连接成功时,监听的套接字会重新选择一个新
的套接字;以及
套接字读取数据判断处理模块,用于判断通过所述新套接字读取数据是否
成功,当读取数据成功时,则读取数据发送端的请求包;当读取数据不成功时, 将所述新套接字加入工作队列,并不断检测所述新套接字的状态,当所述新套 接字可读时,通知所述新套接字读数据。
本发明实施例通过一般的查询机制,对套接字建立状态机,套接字根据状 态机进行数据流转,以及对套接字建立一个通知机制,实现及时准确的通知套 接字数据流转的状态,这样在网络并发量很大的情况下,有效的处理了网络协 议以及网络连接。


'
图1是本发明实施例提供的网络数据的发送方法的实现流程图2是本发明实施例提供的socket读取接收端的回应包实现流程图3是本发明实施例提供的文件的读网络传输流量的检测实现流程图4是本发明实施例提供的网络数据的接收方法的实现流禾呈图5是本发明实施例提供的socket写回应包实现流程图6是本发明实施例提供的文件的写网络流量的检测实现流程图7是本发明实施例提供的数据传输系统的结构图。
具体实施例方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实 施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅 仅用以解释本发明,并不用于限定本发明。
本发明实施例通过一般的查询机制,对套接字建立状态机,套接字根据状
态机进行数据流转,以及对套接字建立一个通知才几制,实现及时准确的通知套 接字数据流转的状态,这样在网络并发量很大的情况下,有效的处理了网络协 议以及网络连接。
在本发明实施例中,套接字(socket)的状态的定义如下
输入输出接口io打开 一个套接字建立之后,其状态就变为io打开状态;
io监听 一个套接字监听成功之后,其状态就变为io监听;
io等待连接该套接字请求连接之前的状态;
io空闲输入/输出接口 i/o暂时没有什么事情做;
io空闲等待 一般由于限制速度导致的i/o不去读写数据,等速度降下来 之后就可以读写了;
io等待读这一般是由于暂时没有读到数据或者本方发送数据之后等待读 取对方的数据,或者由于限制数据的接收速度而没有读取到数据;
io等待写这一般是由于暂时写数据失败或者为了控制发送速度而没有写 数据的状态;
io测试用来测试i/o状态;
io等待关闭该i/o马上将要关闭;
io错误i/o发生错误;
io正在关闭:i/o正在执行关闭操作;
io关闭结束:i/o已经关闭;
io被放入释放队列为了循环利用该i/0,在其结束后,将其放入队列,等 待别人再次取用。
而协议数据的流转状态的定义如下
初始化协议初始化阶段;
读socket已经读取完了网络数据;
正在读socket正在读取网络数据;
读数据用户等待当从网络上读取到数据之后,就要保存数据到緩冲或者写文件,这个状态一般用来限制速度,当速度大于某一个阀值的时候,就让写文件处于等待状态,直到速度降下来为止;
socket读等待socket暂时没有读到数据,处在这个状态的socket会加入 到工作队列,在另外一个线程查询到该socket的可读事件时,向该socket发送 通知消息,通知该socket去读取数据;
写socket已经写完了网络数据;
正在写socket正在写网络数据;
写数据用户等待这个状态是为了限制速度,要写数据的时候,首先要从 文件或者緩冲去取数据,当发送速度过快时,为了限制速度,就会让用户暂时 取不到数据,直到速度降下来为止;
socket写等待这一般是由于发生socket写i/o堵塞造成的,处于这个状态 的socket要力口入到工作区,另外一个线程会查询该socket,在该socket可写的 时候发送可写通知消息,然后该socket再去写数据;
处理协议数据分析处理完毕;
正在处理正在分析处理协议数据;
处理等待 一般来说,我们在处理一个请求数据的时候,都是提交到一个新的线程中去处理,这时主线程就返回处理等待状态;
错误这个状态是伴随socket错误一起处理的;
准备关闭当协议数据全部处理完毕之后,将状态置为准备关闭状态;
关闭协议关闭,之后准备关闭socket。
图1示出了本发明实施例提供的网络数据的发送方法的实现流程,其详细步骤如下所述
在步骤S101中,建立一个套接字,其中该socket的状态为打开状态,数据协议状态为初始化状态。
在步骤S102中,发送端向接收端发送连接请求,此时socket的状态为等待连接。
在步骤S103中,判断步骤S102的连接是否成功,是则执行步骤S105,否 则执行步骤S104。
在步骤S104中,关闭上述socket,程序直接返回。 在步骤S105中,注册socket的通知插槽slot。
在本发明实施例中,在程序中有2个类为Isocket与IsocketSlot, Isocket专 门封装了 socket操作,IsocketSlot专门用来提供被通知功能,Isocket保留有 IsocketSlot, IsocketSlot也保留有Isocket,在发送请求的时候,如果socket连接 成功,那么就将相应的IsocketSlot与本Isocket关if关起来,这就是注册的过程。
在步骤S106中,生成协议数据,并将该协议数据存储到緩沖区,准备发送 协议数据,此时协议数据的状态为正在写状态,其中该协议数据包括状态行、 头部以及包体。
在步骤S107中,通过socket向接收端写数据。
在步骤S108中,判断socket写数据是否成功,是则执行步骤S109;否则 执行步骤S110。其中,在网络上写数据是分块来写的,例如每4K为一块进行 发送。
在步骤S109中,socket写数据完成,即数据文件发送完毕,协议数据状态 为写lt据状态,然后,socket读取"接收端的回应,此时socket的状态为正在读。
在本发明实施例中,socket读完协议数据的回应后,表示协议数据发送结 束,即连接结束;如果读取回应不成功,那么将该socket加入到队列,并不断 查询该队列是否可读,可读时再读取回应,然后关闭socket,整个协i义交互结 束。
在步骤S110中,socket写数据失败,此时socket状态为socket错误状态, 而协议数据状态为socket写等待状态,同时将socket加入到某个工作队列。
在步骤Sill中,新线程不断查询上述工作队列中的socket的状态,判断 socket的状态是否变为可写,是则执行步骤S112,否则执行步骤S113。
在步骤SI 12中,发送端向上述socket发送可写消息,并返回执行步骤S108,
在本发明实施例中,这个循环过程是一直存在的,直到数据文件发送完毕。
在步骤S113中,等待,直到socket可写状态,并再次执行步骤Slll。 在本发明实施例中,数据传输过程是采用基于传输控制协议(Transmission Control Protocol, TCP )的协议,该TCP协议主要是超文本传输协议(Hyper Text Transfer Protocol, HTTP)、实时流协议(Real Time Streaming Protocol, RTSP) 以及自定义协议。
在本发明实施例中,将套接字分配到工作区中,其中对于I/0的处理分为 很多工作区,每一个工作区处理的1/0有一定的限制,例如每个工作区每次只 能处理1024个套接字,目前由第一个工作区处理监听和其余剩余的1/0,如果 要处理的套接字数目多了,就增加工作区,增加的工作区在工作处理完成之后 会退出;如果套接字数目少了,就减少工作区。每个工作区由一个线程处理, 一般windows系统默认每次查询的数目是64个,linux下默认的数目是1024个, 在windows下每个工作区处理130个套4妄字,在linux下每个工作区处理1024 个套接字,处理每个工作区的线程一直都在运行,循环处理该工作区的每一个 套接字,这样调整使得网络并发处理能力很强。保证了速度和效率。其中,套 接字 一直设置处在非堵塞模式。
作为本发明的一个实施例,socket读取接收端的回应存在两种情况,即协 议交互与文件传输,在本发明实施例中,协议交互包括请求、处理以及回应, 这三个步骤即可表示该协议交互过程结束,而文件传输的过程是一个循环的过 程,文件传输是通过分块来完成的,每一块文件的传输都是一个完整的协议交 互的过程。下述给出详细流程描述
在步骤S201中,判断读取接收端的回应包是否成功,是则执行步骤S202, 否则执行步骤S203。
在步骤S202中,读取到了接收端的回应包,此时协议数据状态为读状态, 同时处理接收端的回应。
在本发明实施例中,程序分为应用层和底层,在底层读取到回应之后,将
回应提交到应用层处理,例如注册一种传输方式,在客户端向服务端发送请求 而服务端给予回应之后,客户端读取到了服务端的回应包,然后将回应包提交 到刚才注册传输方式的组件,如果注册成功,则不需要再注册了,如果注册不 成功,则会不断地注册,直到成功为止,当然不同的回应处理方式不同,业务 需求也不一样,有的回应不需要处理,但作为一个协议的交互过程,整个流程 要结束。
处理完毕之后,socket状态为关闭,而协议数据状态也为关闭状态,整个 协议交互过程结束。
在步骤S203中,没有读取到接收端的回应包,socket状态变化为socket 错误,协议数据状态变化为socket读等待,此时,将socket加入到工作队列。
在步骤S204中,新线程不断查询该socket的状态,即判断socket是否可 读,是则执行步骤S205,否则执行步骤S206。
在步骤S205中,通知socket读取回应包,同时返回执行步骤S201。
在步骤S206中,继续查询,直到socket可读。
如果上述的网络连接是正常的协议交互,那么socket只读:f又一次接收端的 回应包。
如果上述连接是文件传输,则发送端与接收端之间多次读取回应包,即循 环读耳又。
在本发明实施例中,对于网络连接为文件传输的情况,如图3所述,对读 取网络的流量是否超过设定值进行检测,其详细步骤如下所述
在步骤S301中,判断读取网络传输流量是否超过设定值,是则执行步骤 S302,否则结束,在本发明实施例中,该判断即是判断当前网络中传输的文件 流量是否超过预先设定值,因为文件传输是分块来传输的,当分块大小超过预 先设定值时,即为超出预定网络传输流量。 —
在步骤S302中,在写文件过程中返回写中断,此时协议数据状态变化为读 数据用户等待,socket状态暂时变为空闲等待状态。
在步骤S303中,将socket加入到工作队列中。
在步骤S304中,新线程不断查询上述工作队列中的socket的状态,即判断上述socket是否可读,是则执行步骤S305,否则执行继续查询。
在步骤S305中,通知socket读取文件数据。
在步骤S306中,在socket不断读取文件数据的过程中,判断读取数据是否成功,是则继续读取,否则执行步骤S308。
在步骤S307中,socket状态变为错误状态,协议数据状态变化为socket 读等待,将该socket加入到工作队列。
在步骤S308中,另外一个新线程不断查询该socket的状态,即判断socket 是否可读,是则执行步骤S309,否则继续查询。
在步骤S309中,通知该socket读取数据,如此反复直到文件读完为止。
通过上述的实现流程就有效的控制了网络流量,实现文件数据的传输。
图4示出了本发明实施例提供的网络数据的接收方法的实现流程,其详细步骤如下所述
在步骤S401中,建立一监听socket。
在步骤S402中,判断socket监听是否成功,即是否有某一个ip地址和端口的连接请求,是则执行步骤S404,否则执行步骤S403。 在步骤S403中,关闭该socket并返回。
在步骤S404中,将监听socket加入到工作队列,该socket的状态为监听状态。
在步骤S405中,新线程不断查询工作区中的监听socket。
在步骤S406中,根据上述新线程不断查询,判断是否监听到发送端的连接请求,是则执行步骤S407,否则结束,关闭该监听socket。
在步骤S407中,监听socket重新accept —个新的socket。
在本发明实施例中,将监听到的连接提交到线性队列中,接收端专门开辟一线程处理监听到的该连接。
在步骤S408中,判断重新accept的新socket读取数据是否成功,此时协 议数据状态是正在读状态,是则执行步骤S413,否则执行步骤S409。
在步骤S409中,新socket读取数据不成功,此时该socket状态变化为socket 错误,协议数据状态变化为socket读错误,表明暂时读不到数据,同时将该socket 加入到工作队列中。
在步骤S410中,新线程不断查询新socket的状态。
在步骤S411中,判断新socket的状态是否变为可读,是则执行步骤S412, 否则继续查询,并返回该步骤。
在步骤S412中,接收端向新socket发送可读的通知消息,并返回执行步 骤S歡
在步骤S413中,读取数据完毕之后,协议数据状态变化为读状态,开始分 析处理协议凄t据,此时协议ft据状态变化为正在处理状态。
在步骤S414中,接收端写回应数据,此时socket状态边为正在写。
作为本发明的又一实施例,接收端写回应数据包括两种情况,即正常协议 交互以及文件传输,在本发明实施例中,协议交互包括请求、处理以及回应, 这三个步骤即可表示该协议交互过程结束,而文件传输的过程是一个循环的过 程,文件传输是通过分块来完成的,每一块文件的传输都是一个完整的协议交 互的过程。下述给出详细的描述
在步骤S501中,判断写回应包是否成功,是则执行步骤S502,否则执行 步骤S503。
在步骤S502中,回应包写成功,此时协议数据状态为写状态,关闭socket。
处理完毕之后,socket状态为关闭,而协议翁:据状态也为关闭状态,协议
交互过程结束,如果是文件传输,则只能在所有的分块的文件传输完成之后才
能关闭该socket。
在步骤S503中,如果回应包写失败,socket状态变化为socket错误,协议 数据状态变化为socket写等待,此时,将socket加入到工作队列。
在步骤S504中,新线程不断查询该socket的状态。
在步骤S505中,判断socket是否可写,是则执行步骤S506,否则执行步 骤S507。
在步骤S506中,通知socket写回应包,同时返回执行步骤S501。
在步骤S507中,继续查询,直到socket可写。
如果上述的网络连接是正常的协议交互,则写一次回应包。
如果上述连接是文件的传输,则接收端多次向数据发送端写回应包,每发 送一次文件的分块都要进行写回应,其中对网络的流量是否超过设定值的检测 的详细流程如下所述
在步骤S601中,判断文件数据的网络的流量是否超过设定值,是则执行步 骤S602,否则结束。
在步骤S602中,在读文件过程中返回读中断,此时协议数据状态变化为写 数据用户等待,socket状态暂时变为空闲等待状态。
在步骤S603中,将socket加入到工作队列中。
在步骤S604中,新线程不断查询上述工作队列中的socket的状态,即判 断上述socket是否可写,是则执行步骤S605,否则执行继续查询。 在步骤S605中,通知socket写文件数据。
在步骤S606中,在socket不断写文件数据的过程中,判断写数据是否成 功,是则继续读取,否则执行步骤S607。 —
在步骤S607中,socket状态变为错误状态,协议数据状态变化为socket 写等待,将该socket加入到工作队列。
在步骤S608中,另外一个新线程不断查询该socket的状态,即判断socket 是否可写,是则执行步骤S609,否则继续查询。
在步骤S609中,通知该socket写数据,如此反复直到文件读完为止。
图7示出了本发明实施例提供的数据传输系统的结构图,为了便于说明仅 示出与本发明实施例相关的部分,其中,数据发送系统1与数据接收系统2置于终端的软件单元、硬件单元或者软硬件单元。
数据发送系统1包括套接字建立模块11、连接请求发送模块12、通知插槽
注册模块13以及套接字写数据判断处理模块14,其中
套接字建立模块11建立套接字;连接请求发送模块12发送网络连接请求; 当判断该连接成功时,通知插槽注册才莫块13注册该套接字的通知插槽;套接字 写数据判断处理模块14判断通过该套接字写数据是否成功,当写数据成功时, 则读取数据接收端的回应包;当写数据不成功时,将该套接字加入工作队列, 并不断检测该套接字的状态,当该套接字可写时,通知该套接字可写数据。
作为本发明的一个实施例,套接字写数据处理判断模块14还包括读取回应 包判断模块141、读取回应包处理模块142以及读取回应包判断处理模块143, 其中
读取回应包判断才莫块141判断读取接收端的回应包是否成功;当读取接收 端的回应包成功时,读取回应包处理模块142则处理回应包;当读取接收端的 回应包不成功时,读取回应包判断处理模块143将该套接字加入到工作队列, 并不断检测套接字的状态,当套接字可读时,读取数据接收端的回应包。
在本发明实施例中,套接字写数据判断处理模块14还包括读网络流量判断 模块144以及读流量处理模块145,读网络流量判断模块144判断文件数据的 网络传输流量是否超过了预先设定值;当该文件数据的网络传输流量超过了预 先设定值时,读流量处理模块145返回写中断,将socket加入到工作队列中, 并判断查询socket的状态,当socket可读时,通知socket读取文件数据。
数据接收系统2包括监听套接字建立判断模块21、连接请求判断模块22、 新套接字选择模块23以及套接字读取数据判断处理模块24,其中
监听套接字建立判断模块21建立一监听socket,并判断该socket监听是否 成功;连接请求判断模块22判断监听socket是否监听到网络连接请求;当连接 成功时,新套4妄字选择才莫块23监听的socket会重新accept —个新的socket;套 接字读取数据判断处理模块24判断通过新套接字读取数据是否成功,当读取数
据成功时,则读取数据发送端的请求包;当读取数据不成功时,将新套接字加 入工作队列,并不断检测新套接字的状态,当新套接字可读时,通知新套接字 可读数据。
作为本发明的又一实施例,套接字读取数据判断处理模块24包括写回应包 判断模块241、写回应包处理模块242以及写回应包判断处理模块243,其中
写回应包判断i^莫块241判断写回应包是否成功;当写回应包成功时,写回 应包处理才莫块242关闭该socket;写回应包判断处理4莫块243当写回应包不成 功时,将该新套接字加入到工作队列,并不断检测该新套接字的状态,当该新 套接字可写时,写回应包。
在本发明实施例中,套接字读取数据判断处理模块24还包括写网络流量判 断模块244以及写流量处理模块245,其中
写网络流量判断模块244判断文件数据的网络传输流量是否超过了预先设 定值;当文件数据的网络传输流量超过了预先设定的值时,写流量处理模块返 回读中断,将socket加入到工作队列中,并判断socket的状态,当socket可写 时,通知socket发送文件数据。
本发明实施例通过一般的查询机制,对套接字建立状态机,套接字根据状 态机进行数据流转,以及对套接字建立一个通知机制,实现及时准确的通知套 接字数据流转的状态,这样在网络并发量很大的情况下,有效的处理了网络协 议以及网络连接。
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发 明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明 的保护范围之内。
权利要求
1、一种数据的发送方法,其特征在于,所述方法包括下述步骤建立套接字,并发送网络连接请求;当判断所述连接成功时,注册所述套接字的通知插槽;判断通过所述套接字写数据是否成功,当写数据成功时,则读取数据接收端的回应包;当写数据不成功时,将所述套接字加入工作队列,并不断检测所述套接字的状态,当所述套接字可写时,通知所述套接字可写数据。
2、 如权利要求1所述的数据的发送方法,其特征在于,所述读取数据接收 端的回应包进一步包括下述步骤判断读取4妄收端的回应包是否成功; 当所述读取接受端的回应包成功时,则处理所述回应包; 当所述读取接收端的回应包不成功时,将所述套接字加入到工作队列,并 不断检测所述套接字的状态,当所述套接字可读时,读取数据接收端的回应包。
3、 如权利要求1或2所述的数据的发送方法,其特征在于,当所述网络连 接为文件传输时,对文件数据的网络传输流量进行判断流程包括下述步骤判断文件数据的网络传输流量是否超过了预先设定值; 当所述文件数据的网络传输流量超过了预先设定值时,返回写数据用户等 待,并将加入到工作队列中;判断所述套接字的状态;当套接字可写时,通知套接字读写数据。
4、 一种数据的接收方法,其特征在于,所述方法包括下述步骤 建立一监听套接字,并判断所述套接字监听是否成功; 判断所述监听套接字是否监听到网络连接请求; 当连接成功时,监听的套接字重新选择一个新的套接字; 判断通过所述新套接字读取数据是否成功,当读取数据成功时,则读取数据发送端的请求包;当读取数据不成功时,将所述新套接字加入工作队列,并 不断检测所述新套接字的状态,当所述新套接字可读时,通知所述新套接字读数据。
5、 如权利要求4所述的数据的接收方法,其特征在于,所述写数据回应包 进一步包括下述步骤判断写回应包是否成功; 当所述写回应包成功时,则关闭所述套接字;当所述写回应包不成功时,将所述新套接字加入到工作队列,并不断检测 所述新套接字的状态,当所述新套接字可写时,写回应包。
6、 如权利要求4或5所述的数据的接收方法,其特征在于,当所述网络连 接为文件传输时,对文件数据的网络传输流量进行判断流程包括下述步骤判断文件数据的网络传输流量是否超过了预先设定值; 当所述文件数据的网络传输流量超过了预先设定值时,返回读数据用户等 待,并将套接字加入到工作队列中;判断查询所述套接字的状态;当套接字可读时,通知套接字读文件数据。
7、 一种数据发送系统,其特征在于,所述系统包括 套接字建立模块,用于建立套接字; 连接请求发送模块,用于发送网络连接请求;通知插槽注册模块,用于当判断所述连接成功时,注册所述套接字的通知 插槽;以及套接字写数据判断处理模块,用于判断通过所述套接字写数据是否成功, 当写数据成功时,则读取数据接收端的回应包;当写数据不成功时,特所述套 接字加入工作队列,并不断检测所述套接字的状态,当所述套接字可写时,通 知所述套接字可写数据。
8、 如权利要求7所述的数据发送系统,其特征在于,所述套接字写数据判 断处理模块还包括读取回应包判断模块,用于判断读取接收端的回应包是否成功; 读取回应包处理才莫块,用于当所述读取^:收端的回应包成功时,则处理所 述回应包;以及读取回应包判断处理模块,用于当所述读取接收端的回应包不成功时,将 所述套接字加入到工作队列,并不断检测所述套接字的状态,当所述套接字可 读时,读取数据接收端的回应包。
9、 如权利要求7或8所述的数据发送系统,其特征在于,套接字写数据判 断处理模块还包括读网络传输流量判断模块,用于判断文件数据的网络传输流量是否超过了 预先设定值;读流量处理模块,用于当所述文件数据的网络传输流量超过了预先设定值 时,返回写中断,将套"t妄字加入到工作队列中,并判断查询所述套接字的状态, 当套接字可写时,通知套接字写文件数据。
10、 一种数据接收系统,其特征在于,所述系统包括 监听套接字建立判断模块,用于建立一监听套接字,并判断所述套接字监听是否成功;连接请求判断模块,用于判断所述监听套接字是否监听到网络连接请求; 新套接字选择模块,用于当连接成功时,监听的套接字重新选择一个新的 套接字;以及套接字读取数据判断处理模块,用于判断通过所述新套接字读取数据是否 成功,当读取数据成功时,则读取数据发送端的请求包;当读取数据不成功时, 将所述新套接字加入工作队列,并不断检测所述新套接字的状态,当所述新套 接字可读时,通知所述新套接字读数据。
11、 如权利要求IO所述的数据接收系统,其特征在于,所述套接字读取数 据判断处理模块还包括写回应包判断模块,用于判断写回应包是否成功; 写回应包处理^t块,用于当所述写回应包成功时,则关闭所述套接字; 写回应包判断处理^i块,用于当所述写回应包不成功时,将所述新套接字 加入到工作队列,并不断检测所述新套接字的状态,当所述新套接字可写时, 写回应包。
12、如权利要求10或11所述的数据接收系统,其特征在于,所述套接字 读取数据判断处理模块还包括写网络传输流量判断模块,用于判断文件数据的网络传输流量是否超过了 预先设定值;写流量处理模块,用于当所述文件数据的网络传输流量超过了预先设定值 时,返回读中断,将套接字加入到工作队列中,并判断查询所述套接字的状态, 当套接字可读时,通知套接字读取文件数据。
全文摘要
本发明适用于数字电视领域,提供了一种数据的传输方法及系统,所述方法包括下述步骤建立套接字,并发送网络连接请求;当判断所述连接成功时,注册所述套接字的通知插槽;判断通过所述套接字写数据是否成功,当写数据成功时,则读取数据接收端的回应包;当写数据不成功时,将所述套接字加入工作队列,并不断检测所述套接字的状态,当所述套接字可写时,通知所述套接字可写数据。本发明实施例通过一般的查询机制,对套接字建立状态机,套接字根据状态机进行数据流转,以及对套接字建立一个通知机制,实现及时准确的通知套接字数据流转的状态,这样在网络并发量很大的情况下,有效的处理了网络协议以及网络连接。
文档编号H04L12/56GK101202704SQ200710076929
公开日2008年6月18日 申请日期2007年9月7日 优先权日2007年9月7日
发明者叶志刚 申请人:深圳市同洲电子股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1