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

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

Info

Publication number
CN103312688A
CN103312688A CN2013100797809A CN201310079780A CN103312688A CN 103312688 A CN103312688 A CN 103312688A CN 2013100797809 A CN2013100797809 A CN 2013100797809A CN 201310079780 A CN201310079780 A CN 201310079780A CN 103312688 A CN103312688 A CN 103312688A
Authority
CN
China
Prior art keywords
data
socket
iocp
encapsulation class
packet
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.)
Granted
Application number
CN2013100797809A
Other languages
English (en)
Other versions
CN103312688B (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

Images

Landscapes

  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

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

Description

一种基于SOCKET的包驱动方法
技术领域
本发明涉及一种基于SOCKET的包驱动方法。
背景技术
Socket的英文原义是“孔”或“插座”,作为4BDS UNIX的进程通信机制,取后一种意思,通常也称作"套接字",用于描述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 true CN103312688A (zh) 2013-09-18
CN103312688B 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)

Cited By (1)

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

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20010021183A1 (en) * 1999-12-13 2001-09-13 Stephan Baucke Method and device for a fast performance of network operations
CN102571578A (zh) * 2011-12-31 2012-07-11 青岛海尔软件有限公司 一种采用完全端口技术实现50万用户在线通讯的方法

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20010021183A1 (en) * 1999-12-13 2001-09-13 Stephan Baucke Method and device for a fast performance of network operations
CN102571578A (zh) * 2011-12-31 2012-07-11 青岛海尔软件有限公司 一种采用完全端口技术实现50万用户在线通讯的方法

Cited By (2)

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

Also Published As

Publication number Publication date
CN103312688B (zh) 2015-11-18

Similar Documents

Publication Publication Date Title
CN109246671A (zh) 数据传输方法、装置及系统
CN108933871B (zh) 呼叫中心呼入话务路由方法、装置及系统
CN101867572B (zh) 无线优盘的实现方法及系统
CN108494817A (zh) 数据传输方法、相关装置及系统
RU2007136297A (ru) Способ и система для обеспечения мобильных точек доступа бемпроводной связи
CN103650458A (zh) 媒体流的传输方法、装置与系统
CN104283760A (zh) 一种WebRTC通信方法、相关设备及系统
CN101005411B (zh) 电路型数据业务自动化测试系统、装置及方法
CN102438331B (zh) 一种移动终端通过手机上网的方法及系统
CN101801062A (zh) 移动终端及该移动终端访问网络的方法
CN101390362A (zh) 包含多个用户应用共享的用户代理的sip多用户媒体客户端
CN105188041B (zh) 基于固定电话的呼叫转移方法及家庭网关
CN101969454A (zh) 移动终端实现与计算机的数据传输方法、系统及移动终端
CN105120524A (zh) 一种建立通信连接的方法和电子设备
US8712028B2 (en) Telephone relaying apparatus, telephone relaying method, and program
KR100990744B1 (ko) 게이트웨이서버와 이동통신단말기 식별정보를 이용한 통신로 개설방법
CN103312688A (zh) 一种基于socket的包驱动方法
CN104703291A (zh) 一种基于MiFi的通信方法及相关MiFi
CN103888923A (zh) 应用于虚拟专用移动网的呼叫接续方法、系统及装置
CN103139209B (zh) 媒体码流获取方法、unisaf服务器及软交换通信系统
US8705717B2 (en) Telephone relaying apparatus, telephone relaying method, and program
CN104079728A (zh) 号码显示的方法及装置
CN104994116A (zh) 多屏统一通信的方法、装置和系统
CN102891888B (zh) 一种数据访问方法及相关设备、系统
CN201667672U (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