CN103312688B - 一种基于socket的包驱动方法 - Google Patents

一种基于socket的包驱动方法 Download PDF

Info

Publication number
CN103312688B
CN103312688B CN201310079780.9A CN201310079780A CN103312688B CN 103312688 B CN103312688 B CN 103312688B CN 201310079780 A CN201310079780 A CN 201310079780A CN 103312688 B CN103312688 B CN 103312688B
Authority
CN
China
Prior art keywords
data
socket
iocp
packet
class
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN201310079780.9A
Other languages
English (en)
Other versions
CN103312688A (zh
Inventor
赖羿光
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
SICHUAN SURFING NETWORK SERVICE Co Ltd
Original Assignee
SICHUAN SURFING NETWORK SERVICE Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by SICHUAN SURFING NETWORK SERVICE Co Ltd filed Critical SICHUAN SURFING NETWORK SERVICE Co Ltd
Priority to CN201310079780.9A priority Critical patent/CN103312688B/zh
Publication of CN103312688A publication Critical patent/CN103312688A/zh
Application granted granted Critical
Publication of CN103312688B publication Critical patent/CN103312688B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

本发明了公开了一种基于SOCKET的包驱动方法,它包括数据包的接收和数据包的传输两个步骤,所述的数据包的接收包括SOCKET的初始化与读,包括以下子步骤:建立连接、发送请求、发送数据、判断包是否完成、调用应用层业务、应用层进入队列、读取数据包;数据包的传输包括SOCKET的数据包的写过程,包括以下子步骤:发送写入数据请求、写入数据、写数据完成、计算发送是否完成、完成写数据。本发明SOCKET模型的初始化读与写方法低延迟、易于处理错误,API也很容易使用,无需另外的层就可以直接使用,能够更好地实现客户端与服务器之间的数据传输,传输速度快、传输稳定,不易发生传输数据丢失的现象。

Description

一种基于SOCKET的包驱动方法
技术领域
本发明涉及一种基于SOCKET的包驱动方法。
背景技术
Socket的英文原义是“孔”或“插座”,作为4BDSUNIX的进程通信机制,取后一种意思,通常也称作"套接字",用于描述IP地址和端口,是一个通信链的句柄。在Internet上的主机一般运行了多个服务软件,同时提供几种服务。每种服务都打开一个Socket,并绑定到一个端口上,不同的端口对应于不同的服务,Socket正如其英文原意那样,像一个多孔插座。一台主机犹如布满各种插座的房间,每个插座有一个编号,有的插座提供220伏交流电,有的提供110伏交流电,有的则提供有线电视节目。客户软件将插头插到不同编号的插座,就可以得到不同的服务。
Socket非常类似于电话插座。以一个国家级电话网为例。在电话系统中,一般用户只能感受到本地电话机和对方电话号码的存在,建立通话的过程,话音传输的过程以及整个电话系统的技术细节对他都是透明的,这也与Socket机制非常相似。Socket利用网间网通信设施实现进程通信,但它对通信设施的细节毫不关心,只要通信设施能提供足够的通信能力,它就满足了。
一个完整的socket有一个本地唯一的socket号,由操作系统分配。
最重要的是,socket是面向客户/服务器模型而设计的,针对客户和服务器程序提供不同的socket系统调用。客户随机申请一个socket(相当于一个想打电话的人可以在任何一台入网电话上拨号呼叫),系统为之分配一个socket号;服务器拥有全局公认的socket,任何客户都可以向它发出连接请求和信息请求(相当于一个被呼叫的电话拥有一个呼叫方知道的电话号码)。
Socket利用客户/服务器模式巧妙地解决了进程之间建立通信连接的问题。服务器socket半相关为全局所公认非常重要。应用程序通常通过“套接字”向网络发出请求或者应答网络请求。以J2SDK-1.3为例,Socket和ServerSocket类库位于java.net包中。ServerSocket用于服务器端,Socket是建立网络连接时使用的。在连接成功时,应用程序两端都会产生一个Socket实例,操作这个实例,完成所需的会话。对于一个网络连接来说,套接字是平等的,并没有差别,不因为在服务器端或在客户端而产生不同级别。不管是Socket还是ServerSocket它们的工作都是通过SocketImpl类及其子类完成的。
发明内容
本发明的目的在于克服现有技术的不足,提供一种API很容易使用,无需另外的层就可以直接使用,能够更好地实现客户端与服务器之间的数据传输,传输速度快、传输稳定,传输过程中不易发生传输数据丢失的现象的基于SOCKET的包驱动方法。
本发明的目的是通过以下技术方案来实现的:一种基于SOCKET的包驱动方法,它包括数据包的接收和数据包的传输,其中,所述的数据包的接收包括以下子步骤:
S101:建立连接:客户端与IOCP建立连接,IOCP绑定完成端口;
S102:发送请求:SOCKET封装类向IOCP发送读取数据的请求;
S103:发送数据:客户端向IOCP发送数据,IOCP读取数据并返回;
S104:判断包是否完成:IOCP判断数据是否是完成的包,并将完成的包发送至SOCKET封装类;
S105:调用应用层业务:SOCKET封装类组成包对象,并调用应用层业务;
S106:应用层进入队列:应用层进入队列,并返回SOCKET封装类;
S107:读取数据包:SOCKET封装类向IOCP读取数据包;
所述的数据包的传输包括以下子步骤:
S201:发送写入数据请求:应用层向SOCKET封装类发送写入数据业务请求;
S202:写入数据:SOCKET封装类向IOCP写入数据;
S203:写数据完成:IOCP完成数据写入后向SOCKET封装类返回写数据完成信息;
S204:计算发送是否完成:SOCKET封装类计算发送是否完成,若发送未完成,则继续向IOCP写入数据,IOCP完成数据写入后再向SOCKET封装类返回写数据完成信号;
S205:完成写数据:SOCKET封装类计算发送完成,写数据完成;
S206:SOCKET封装类向IOCP读取数据。
本发明的优点在于:SOCKET模型的初始化读与写功能强大,能进行双向通信、延迟低,且易于处理错误,其不会像Comet长轮询那样有许多的连接,也没有Comet流所具有的一些缺点,它的API也很容易使用,无需另外的层就可以直接使用,能够更好地实现客户端与服务器之间的数据传输,传输速度快、传输稳定,传输过程中不易发生传输数据丢失的现象;采用包传输的方式,传输稳定,能够提高传输效率。
附图说明
图1为本发明的数据包发送和接收流程图。
具体实施方式
下面结合附图进一步说明本发明的技术方案,但本发明所保护的内容不局限于以下所述。
如图1所示,一种基于SOCKET的包驱动方法,它包括数据包的接收和数据包的传输,所述的数据包的接收包括以下子步骤:
S101:建立连接:客户端与IOCP建立连接,IOCP绑定完成端口;
S102:发送请求:SOCKET封装类向IOCP发送读取数据的请求;
S103:发送数据:客户端向IOCP发送数据,IOCP读取数据并返回;
S104:判断包是否完成:IOCP判断数据是否是完成的包,并将完成的包发送至SOCKET封装类;
S105:调用应用层业务:SOCKET封装类组成包对象,并调用应用层业务;
S106:应用层进入队列:应用层进入队列,并返回SOCKET封装类;
S107:读取数据包:SOCKET封装类向IOCP读取数据包;
所述的数据包的传输包括以下子步骤:
S201:发送写入数据请求:应用层向SOCKET封装类发送写入数据业务请求;
S202:写入数据:SOCKET封装类向IOCP写入数据;
S203:写数据完成:IOCP完成数据写入后向SOCKET封装类返回写数据完成信息;
S204:计算发送是否完成:SOCKET封装类计算发送是否完成,若发送未完成,则继续向IOCP写入数据,IOCP完成数据写入后再向SOCKET封装类返回写数据完成信号;
S205:完成写数据:SOCKET封装类计算发送完成,写数据完成;
S206:SOCKET封装类向IOCP读取数据。

Claims (1)

1.一种基于SOCKET的包驱动方法,其特征在于:它包括数据包的接收和数据包的传输,其中,所述的数据包的接收包括以下子步骤:
S101:建立连接:客户端与IOCP建立连接,IOCP绑定完成端口;
S102:发送请求:SOCKET封装类向IOCP发送读取数据的请求;
S103:发送数据:客户端向IOCP发送数据,IOCP读取数据并返回;
S104:判断包是否完成:IOCP判断数据是否是完成的包,并将完成的包发送至SOCKET封装类;
S105:调用应用层业务:SOCKET封装类组成包对象,并调用应用层业务;
S106:应用层进入队列:应用层进入队列,并返回SOCKET封装类;
S107:读取数据包:SOCKET封装类向IOCP读取数据包;
所述的数据包的传输包括以下子步骤:
S201:发送写入数据请求:应用层向SOCKET封装类发送写入数据业务请求;
S202:写入数据:SOCKET封装类向IOCP写入数据;
S203:写数据完成:IOCP完成数据写入后向SOCKET封装类返回写数据完成信息;
S204:计算发送是否完成:SOCKET封装类计算发送是否完成,若发送未完成,则继续向IOCP写入数据,IOCP完成数据写入后再向SOCKET封装类返回写数据完成信号;
S205:完成写数据:SOCKET封装类计算发送完成,写数据完成;
S206:SOCKET封装类向IOCP读取数据。
CN201310079780.9A 2013-03-13 2013-03-13 一种基于socket的包驱动方法 Active CN103312688B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201310079780.9A CN103312688B (zh) 2013-03-13 2013-03-13 一种基于socket的包驱动方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201310079780.9A CN103312688B (zh) 2013-03-13 2013-03-13 一种基于socket的包驱动方法

Publications (2)

Publication Number Publication Date
CN103312688A CN103312688A (zh) 2013-09-18
CN103312688B true CN103312688B (zh) 2015-11-18

Family

ID=49137473

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201310079780.9A Active CN103312688B (zh) 2013-03-13 2013-03-13 一种基于socket的包驱动方法

Country Status (1)

Country Link
CN (1) CN103312688B (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103973694B (zh) * 2014-05-14 2017-05-10 北京太一星晨信息技术有限公司 安全套接层协议实体访问非连续内存的方法及接口装置

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102571578A (zh) * 2011-12-31 2012-07-11 青岛海尔软件有限公司 一种采用完全端口技术实现50万用户在线通讯的方法

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1109374A3 (de) * 1999-12-13 2001-06-27 TELEFONAKTIEBOLAGET LM ERICSSON (publ) Verfahren und Vorrichtung zur Durchführung von Netzwerkoperationen

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102571578A (zh) * 2011-12-31 2012-07-11 青岛海尔软件有限公司 一种采用完全端口技术实现50万用户在线通讯的方法

Also Published As

Publication number Publication date
CN103312688A (zh) 2013-09-18

Similar Documents

Publication Publication Date Title
CN101867572B (zh) 无线优盘的实现方法及系统
WO2005089139A2 (en) Remote usb port system and method
RU2007136297A (ru) Способ и система для обеспечения мобильных точек доступа бемпроводной связи
CN104486327B (zh) 页面与长连接服务器间的通信方法及客户端
CN103051716A (zh) 一种面向网络的串口设备重定向的方法及系统
CN101801062A (zh) 移动终端及该移动终端访问网络的方法
JP2014123363A5 (zh)
CN103312688B (zh) 一种基于socket的包驱动方法
CN101557354A (zh) 一种在在线客服中发送图片的方法
CN105392155A (zh) 适用于移动网系仿真的虚实互联网关及其实现仿真的方法
CN105430665B (zh) 实现多网混合规模组网的方法及系统
CN102281559B (zh) 多数据卡进行ftp业务测试无线网络ps性能的方法及装置
CN103501343A (zh) 加快网页打开以及在网页中插入缓存页面内容的方法
US20120140913A1 (en) Telephone relaying apparatus, telephone relaying method, and program
CN102811149B (zh) 一种用于视频系统中的双卡前端设备及控制方法、系统
CN203027289U (zh) 一种实现计算机、上位机和下位机之间串口通信的系统
US20120063584A1 (en) Telephone relaying apparatus, telephone relaying method, and program
CN103605594B (zh) 终端基础功能调用方法及装置
CN106254396A (zh) 私有协议信息传输系统与方法
CN104994116A (zh) 多屏统一通信的方法、装置和系统
CN101965066B (zh) 一种获取业务信息的方法、装置及系统
CN104639605A (zh) 一种自动为社会化通信软件自动增加好友的系统、装置和方法
US20130122896A1 (en) Method and device for providing communication to user equipment
KR100975865B1 (ko) 게이트웨이서버와 전화번호를 이용한 통신로 개설방법
WO2014183525A1 (zh) 报文的处理方法和级联芯片

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant