CN102685010B - 实现超大规模连接tcp/ip网络的通信方法 - Google Patents
实现超大规模连接tcp/ip网络的通信方法 Download PDFInfo
- Publication number
- CN102685010B CN102685010B CN201210151163.0A CN201210151163A CN102685010B CN 102685010 B CN102685010 B CN 102685010B CN 201210151163 A CN201210151163 A CN 201210151163A CN 102685010 B CN102685010 B CN 102685010B
- Authority
- CN
- China
- Prior art keywords
- function
- hhcomm
- module
- network
- call
- 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
Links
Abstract
本发明提供一种实现超大规模连接TCP/IP网络的通信方法,它利用面向对象的程序设计方法,封装一个网络IO模块并通过它实现通信:调用HHCOMM_Create()函数,获得模块句柄;使用ConnectInfo结构体,填充节点信息,并调用HHCOMM_Init()函数,初始化节点;调用功能设置函数,启用或关闭有限特殊功能;调用HHCOMM_SetNotifyHandle()函数,设置窗口消息进行数据接收;启动线程,处理函数接收的数据;调用HHCOMM_Start()函数,启动模块收发数据。该方法具有简单易用、稳定性强、容错能力好、运行高效的优点。
Description
技术领域
本发明涉及一种通信方法,具体的说,涉及了一种实现超大规模连接TCP/IP网络的通信方法。
背景技术
在进行C/S架构软件开发的过程中,当服务器面临成千上百个连接时,一个好的网络模块设计往往对系统的整体性能起着决定作用。
在Windows下进行网络服务器开发有多个网络IO模型可供选择,但进行高并发服务器开发时,往往采用完成端口模型,但由于该模型比较复杂,在进行使用时,往往由于使用方法不当而使该模型发挥不出应有的效率。
为了解决以上存在的问题,人们一直在寻求一种理想的技术解决方案。
发明内容
本发明的目的是针对现有技术的不足,从而提供一种简单易用、稳定性强、容错能力好、运行高效的实现超大规模连接TCP/IP网络的通信方法。
为了实现上述目的,本发明所采用的技术方案是:一种实现超大规模连接TCP/IP网络的通信方法,它利用面向对象的程序设计方法,对网络IO模型进行封装并构成网络IO模块,并通过该网络IO模块实现超大规模连接TCP/IP网络的通信,包括以下步骤:
步骤1、调用HHCOMM_Create()函数,获得一个模块句柄;
步骤2、使用ConnectInfo结构体,填充节点信息,并调用HHCOMM_Init()函数,初始化一个节点;
步骤3、调用功能设置函数,启用或关闭有限特殊功能;
步骤4、调用HHCOMM_SetNotifyHandle()函数,设置一个窗口消息或线程消息进行数据接收;
步骤5、启动一个线程或创建一个窗口消息,处理函数接收的数据;
步骤6、调用HHCOMM_Start()函数,启动网络IO模块开始收发数据。
本发明相对现有技术具有突出的实质性特点和显著进步,具体的说,该网络IO模块隐藏了复杂的技术细节,对外提供了简单易用的接口,使得开发高并发网络服务器变得简单而且高效;该方法具有简单易用、稳定性强、容错能力好、运行高效的优点。
具体实施方式
下面通过具体实施方式,对本发明的技术方案做进一步的详细描述。
一种实现超大规模连接TCP/IP网络的通信方法,它利用面向对象的程序设计方法,对网络IO模型进行封装并构成网络IO模块,并通过该网络IO模块实现超大规模连接TCP/IP网络的通信,包括以下步骤:
步骤1、调用HHCOMM_Create()函数,获得一个模块句柄;
步骤2、使用ConnectInfo结构体,填充节点信息,并调用HHCOMM_Init()函数,初始化一个节点;
步骤3、根据需要,调用功能设置函数,启用或关闭有限特殊功能;
步骤4、调用HHCOMM_SetNotifyHandle()函数,设置一个窗口消息或线程消息进行数据接收;
步骤5、启动一个线程或创建一个窗口消息,处理函数接收的数据;
步骤6、调用HHCOMM_Start()函数,启动网络IO模块开始收发数据。
该网络IO模块共提供了26个函数,该网络IO模块同时既可以做服务端也可以做客户端,对用户来说不用关心节点是服务端还是客户端,发送接收数据时只需要指定节点ID即可。
该网络IO模块的功能有如下几点:1、可以调用在模块启动后调用HHCOMM_AddConnect()动态添加节点无需重启模块。2、可以通过调用HHCOMM_SetValidPeerIDs()添加合法的节点,并通过调用HHCOMM_SetParameter()使用PARAM_CHECK_ACCEPT_SOCKET_VALID参数启用节点ID过滤功能。3、可以通过调用HHCOMM_RegLogListener()并创建一个函数进行日志输出,输出模块运行状态。4、可以通过调用HHCOMM_GetParameter()和相关参数获得内存池和整个模块内存使用状态。5、该模块使用内存池可以避免模块频繁分配释放内存,并保持内存使用稳定。6、给模块可以对每个节点数据通信状况进行统计,具体统计内容见SocketStatInfo结构体。7、该模块支持简单的协议解析功能,并且用户可以很容易将自己定义的协议加入到模块中,目前支持微机监测协议和智能分析协议。
该网络IO模块通过现场检验,具有优秀的稳定性和很好的容错能力,并且由于采用面向对象的设计方法,具有很好的功能扩展能力。
我们利用模拟客户端,对该模块在1024个连接每个连接每秒发送一包1M的数据的环境进行了测试,该模块运行状态良好,CPU和内存使用率都比较低;我们将该模块使用到了我们的微机监测服务器上,使用后跟以前比较,软件的稳定性和网络吞吐能力得到了很大提高。
最后应当说明的是:以上实施例仅用以说明本发明的技术方案而非对其限制;尽管参照较佳实施例对本发明进行了详细的说明,所属领域的普通技术人员应当理解:依然可以对本发明的具体实施方式进行修改或者对部分技术特征进行等同替换;而不脱离本发明技术方案的精神,其均应涵盖在本发明请求保护的技术方案范围当中。
Claims (1)
1.一种实现超大规模连接TCP/IP网络的通信方法,其特征在于:利用面向对象的程序设计方法,对网络IO模型进行封装并构成网络IO模块,并通过该网络IO模块实现超大规模连接TCP/IP网络的通信,包括以下步骤:
步骤1、调用HHCOMM_Create()函数,获得一个模块句柄;
步骤2、使用ConnectInfo结构体,填充节点信息,并调用HHCOMM_Init()函数,初始化一个节点;
步骤3、调用功能设置函数,启用或关闭有限特殊功能;其中,在模块启动后调用HHCOMM_AddConnect(),动态添加节点无需重启模块;通过调用HHCOMM_SetValidPeerIDs()添加合法的节点,并通过调用HHCOMM_SetParameter()使用PARAM_CHECK_ACCEPT_SOCKET_VALID参数启用节点ID过滤功能;通过调用HHCOMM_RegLogListener()并创建一个函数进行日志输出,输出模块运行状态;通过调用HHCOMM_GetParameter()和相关参数获得内存池和整个模块内存使用状态;
步骤4、调用HHCOMM_SetNotifyHandle()函数,设置一个窗口消息或线程消息进行数据接收;
步骤5、启动一个线程或创建一个窗口消息,处理函数接收的数据;
步骤6、调用HHCOMM_Start()函数,启动网络IO模块开始收发数据。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210151163.0A CN102685010B (zh) | 2012-05-16 | 2012-05-16 | 实现超大规模连接tcp/ip网络的通信方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210151163.0A CN102685010B (zh) | 2012-05-16 | 2012-05-16 | 实现超大规模连接tcp/ip网络的通信方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN102685010A CN102685010A (zh) | 2012-09-19 |
CN102685010B true CN102685010B (zh) | 2016-05-18 |
Family
ID=46816395
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201210151163.0A Active CN102685010B (zh) | 2012-05-16 | 2012-05-16 | 实现超大规模连接tcp/ip网络的通信方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN102685010B (zh) |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1955990A (zh) * | 2005-10-28 | 2007-05-02 | 深圳市东进通讯技术股份有限公司 | 综合电信平台中的流程执行方法及系统 |
CN101055518A (zh) * | 2007-05-31 | 2007-10-17 | 上海交通大学 | 基于面向对象的智能空间建模方法 |
CN101159747A (zh) * | 2007-11-12 | 2008-04-09 | 中兴通讯股份有限公司 | 一种基于tcp并发多链路的通信系统及其方法 |
CN102012820A (zh) * | 2010-12-07 | 2011-04-13 | 福州锐达数码科技有限公司 | 一种在Windows操作系统中实现虚拟页面的方法 |
CN102271167A (zh) * | 2011-09-09 | 2011-12-07 | 刘浩 | 一种适用于分布式通信中间件的代理器(Agent)并行处理方法及结构 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
UA55489C2 (uk) * | 1997-10-07 | 2003-04-15 | Каналь+ Сосьєте Анонім | Пристрій для багатопотокової обробки даних (варіанти) |
-
2012
- 2012-05-16 CN CN201210151163.0A patent/CN102685010B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1955990A (zh) * | 2005-10-28 | 2007-05-02 | 深圳市东进通讯技术股份有限公司 | 综合电信平台中的流程执行方法及系统 |
CN101055518A (zh) * | 2007-05-31 | 2007-10-17 | 上海交通大学 | 基于面向对象的智能空间建模方法 |
CN101159747A (zh) * | 2007-11-12 | 2008-04-09 | 中兴通讯股份有限公司 | 一种基于tcp并发多链路的通信系统及其方法 |
CN102012820A (zh) * | 2010-12-07 | 2011-04-13 | 福州锐达数码科技有限公司 | 一种在Windows操作系统中实现虚拟页面的方法 |
CN102271167A (zh) * | 2011-09-09 | 2011-12-07 | 刘浩 | 一种适用于分布式通信中间件的代理器(Agent)并行处理方法及结构 |
Also Published As
Publication number | Publication date |
---|---|
CN102685010A (zh) | 2012-09-19 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN105119974B (zh) | 一种混合云架构的物联系统及实现方法 | |
EP2645636A2 (en) | Home gateway, cloud server, and method for communication therebetween | |
CN102377814B (zh) | 针对嵌入式操作系统的远程协助服务方法 | |
CN109309599B (zh) | 一种基于路灯硬件平台实现物联网设备高并发通信的方法 | |
CN101227343B (zh) | 一种TCPv6和/或UDPv6测试设备及方法 | |
CN102118448A (zh) | 一种云计算的实现方法、系统及终端 | |
CN105159256A (zh) | 一种基于Web服务的智能家居控制系统 | |
CN110855794A (zh) | 一种基于TCP协议的数据库Socket网关实现方法及装置 | |
CN102647432B (zh) | 一种认证信息传输方法、装置及认证中间件 | |
CN105472291A (zh) | 多处理器集群的数字硬盘录像机及其实现方法 | |
CN203135901U (zh) | 加密机管理装置 | |
CN111262823A (zh) | 一种安全网关及其数据处理方法 | |
CN1697407A (zh) | 一种支持Ipv6的边界网关协议一致性测试的实现方法和系统 | |
CN103051724A (zh) | 一种基于长连接的套接字同步方法 | |
CN103457784B (zh) | 性能测试方法和装置 | |
CN102685010B (zh) | 实现超大规模连接tcp/ip网络的通信方法 | |
CN106411588B (zh) | 一种网络设备管理方法、主设备及管理服务器 | |
CN102983988A (zh) | 一种设备代理装置以及网络管理装置 | |
CN102202045A (zh) | 广电网络中实现互联网络接入的方法、系统及装置 | |
CN110365782A (zh) | 一种基于Netty的物联通讯方法、设备、硬件终端及服务器 | |
CN106059635A (zh) | 电子设备蓝牙设置方法及装置、蓝牙连接方法 | |
WO2018108133A1 (zh) | 一种数据网络信息处理方法、装置、终端及存储介质 | |
WO2022160698A1 (zh) | 计量自动化系统的通信方法、系统、装置和计算机设备 | |
Ren et al. | Research on communication method of OPC UA client based on ARM | |
CN105591866A (zh) | 共享wifi的方法及系统、家庭网关和无线局域网关 |
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 |