[推荐] 高性能 TCP & UDP 通信框架 HP-Socket v4.2.1 [问题点数:100分,结帖人DuMiYue]

Bbs2
本版专家分:187
结帖率 96.2%
Bbs9
本版专家分:87215
Blank
状元 2017年 总版技术专家分年内排行榜第一
Blank
榜眼 2014年 总版技术专家分年内排行榜第二
Blank
探花 2013年 总版技术专家分年内排行榜第三
Blank
进士 2018年总版新获得的技术专家分排名前十
2012年 总版技术专家分年内排行榜第七
Bbs2
本版专家分:187
Bbs3
本版专家分:592
Bbs2
本版专家分:380
Bbs1
本版专家分:55
Bbs9
本版专家分:87215
Blank
状元 2017年 总版技术专家分年内排行榜第一
Blank
榜眼 2014年 总版技术专家分年内排行榜第二
Blank
探花 2013年 总版技术专家分年内排行榜第三
Blank
进士 2018年总版新获得的技术专家分排名前十
2012年 总版技术专家分年内排行榜第七
Bbs2
本版专家分:187
Bbs2
本版专家分:187
Bbs4
本版专家分:1720
Bbs3
本版专家分:690
Bbs7
本版专家分:25962
Bbs2
本版专家分:187
Bbs1
本版专家分:10
Bbs1
本版专家分:93
Bbs1
本版专家分:85
Bbs2
本版专家分:393
Bbs2
本版专家分:348
Blank
红花 2017年4月 扩充话题大版内专家分月排行榜第一
2015年5月 硬件/嵌入开发大版内专家分月排行榜第一
2014年2月 硬件/嵌入开发大版内专家分月排行榜第一
Blank
黄花 2017年7月 扩充话题大版内专家分月排行榜第二
2017年5月 扩充话题大版内专家分月排行榜第二
2014年4月 硬件/嵌入开发大版内专家分月排行榜第二
2014年3月 硬件/嵌入开发大版内专家分月排行榜第二
2014年1月 硬件/嵌入开发大版内专家分月排行榜第二
2013年12月 硬件/嵌入开发大版内专家分月排行榜第二
Blank
蓝花 2017年6月 扩充话题大版内专家分月排行榜第三
2017年3月 扩充话题大版内专家分月排行榜第三
2017年1月 扩充话题大版内专家分月排行榜第三
Bbs6
本版专家分:8646
版主
Blank
进士 2018年总版新获得的技术专家分排名前十
2017年 总版技术专家分年内排行榜第六
Blank
金牌 2018年1月 总版技术专家分月排行榜第一
2016年12月 总版技术专家分月排行榜第一
2016年11月 总版技术专家分月排行榜第一
2016年10月 总版技术专家分月排行榜第一
Blank
优秀版主 2016年10月优秀大版主
2016年8月优秀大版主
Blank
银牌 2018年5月 总版技术专家分月排行榜第二
2017年12月 总版技术专家分月排行榜第二
2016年9月 总版技术专家分月排行榜第二
Bbs1
本版专家分:0
Bbs3
本版专家分:728
Bbs2
本版专家分:342
Bbs1
本版专家分:0
Blank
GitHub 绑定GitHub第三方账户获取
Bbs1
本版专家分:0
Bbs2
本版专家分:348
Bbs2
本版专家分:198
Bbs1
本版专家分:0
Bbs2
本版专家分:342
Bbs1
本版专家分:1
Bbs7
本版专家分:20151
Bbs2
本版专家分:198
Bbs1
本版专家分:20
Bbs1
本版专家分:10
Blank
GitHub 绑定GitHub第三方账户获取
Bbs1
本版专家分:10
Bbs2
本版专家分:187
Bbs1
本版专家分:18
Bbs12
本版专家分:433021
版主
Blank
榜眼 2009年 总版技术专家分年内排行榜第二
2005年 总版技术专家分年内排行榜第二
Blank
进士 2018年总版新获得的技术专家分排名前十
Blank
银牌 2009年7月 总版技术专家分月排行榜第二
2009年3月 总版技术专家分月排行榜第二
2009年1月 总版技术专家分月排行榜第二
2005年7月 总版技术专家分月排行榜第二
2005年5月 总版技术专家分月排行榜第二
2005年3月 总版技术专家分月排行榜第二
Blank
优秀版主 优秀小版主
2015年8月优秀小版主
2015年9月优秀小版主
2015年5月优秀小版主
2015年2月论坛优秀版主
Bbs2
本版专家分:401
Bbs1
本版专家分:62
Blank
GitHub 绑定GitHub第三方账户获取
Bbs3
本版专家分:765
Blank
蓝花 2008年6月 硬件/嵌入开发大版内专家分月排行榜第三
Bbs1
本版专家分:0
Bbs4
本版专家分:1217
Bbs1
本版专家分:26
Bbs1
本版专家分:0
Bbs1
本版专家分:0
Bbs2
本版专家分:189
Bbs5
本版专家分:2878
高性能浏览器网络之网络部分 -- Building Blocks of TCP
Building Blocks of TCP -- 题目怎么翻译呢? TCP构建块? 深入浅出TCP?认识TCP? --------------------------------------------------------------------------------------- 第二章 Building Blocks of TCP 互联网的核心是两个协议,IP和TCP。IP(
Linux 高性能服务器编程——TCP/IP协议族
1 TCP/IP协议族体系结构数据链路层:    职责:实现网卡接口的网络驱动程序,一处理数据在物理媒介(如以太网、令牌环等)上的传输。    常用协议:ARP协议(地址解析协议),RARP协议(逆地址解析协议)——实现了IP地址和机器物理地址之间的相互转换。    寻址:使用物理地址(MAC地址)寻址一台机器。因此网络层必须先将目标机器的IP地址转化成其物理地址,才能使用数据链路层提供的服务。网
linux高性能服务器编程学习笔记三:TCP协议详解
1、和IP协议相比,TCP协议处于传输层,更靠近应用层,因此在应用程序中具有更强的可操作性。 2、一般来说,TCP主要处理端到端的通信,因此头部信息主要包括源端口号,目的端口号。TCP协议是面向连接、面向字节流和可靠传输的协议。因此头部还需要一些字段来管理TCP连接以及控制两个方向的数据流。 3、TCP服务的特点:使用TCP协议通信必须先建立连接,然后才能开始数据的读写。并且通信双方都需要在内
高性能 TCP & UDP 通信框架 HP-Socket v3.5.3 发布
[url=http://www.jessma.org][img=https://img-bbs.csdn.net/upload/201403/29/1396091144_455532.png][/img][/url]rn[color=#800000]  HP-Socket 是一套通用的<em>高性能</em> TCP/UDP 通信框架,包含服务端组件、客户端组件和 Agent 组件,广泛适用于各种不同应用场景的 TCP/UDP 通信系统,提供 C/C++、C#、Delphi、E(易语言)、Java、Python 等编程语言接口。HP-Socket 对通信层实现完全封装,应用程序不必关注通信层的任何细节;HP-Socket 提供基于事件通知模型的 API 接口,能非常简单高效地整合到新旧应用程序中。rn  为了让使用者能方便快速地学习和使用 HP-Socket,迅速掌握框架的设计思想和使用方法,特此精心制作了大量 Demo 示例(如:PUSH 模型示例、PULL 模型示例、性能测试示例以及其它编程语言示例)。HP-Socket 目前运行在 Windows 平台,将来会实现跨平台支持。[/color]rnrn * HP-Socket 官方网站:[url=http://www.jessma.org]http://www.jessma.org[/url]rn * HP-Socket 项目主页:[url=http://www.oschina.net/p/hp-socket]http://www.oschina.net/p/hp-socket[/url]rn * HP-Socket 开发文档:[url=http://www.oschina.net/action/project/go?id=25210&p=doc]http://www.oschina.net/p/hp-socket/doc[/url]rn ------------------------------------------------------------------------------------------------rn[b] [size=14px]【通用性】[/size][/b]rn   1、HP-Socket 的唯一职责就是接收和发送字节流,不参与应用程序的协议解析等工作。rn   2、HP-Socket 与应用程序通过接口进行交互,并完全解耦。任何应用只要实现了 HP-Socket 的接口规范都可以无缝整合 HP-Socket。rn rn[b][size=14px]【易用性】[/size][/b]rn   1、易用性对所有通用框架都是至关重要的,如果太难用还不如自己重头写一个来得方便。因此,HP-Socket 的接口设计得非常简单和统一。rn   2、HP-Socket 完全封装了所有底层通信细节,应用程序不必也不能干预底层通信操作。通信连接被抽象为 Connection ID,Connection ID 作为连接的唯一标识提供给应用程序来处理不同的连接。rn   3、HP-Socket 提供 PUSH / PULL / PACK 等接收模型, 应用程序可以灵活选择以手工方式、 半自动方式或全自动方式处理封解包, PULL / PACK 接收模型在降低封解包处理复杂度的同时能大大减少出错几率。rnrn[b][size=14px]【<em>高性能</em>】[/size][/b]rn   [b]Client 组件:[/b]基于 Event Select 通信模型,在单独线程中执行通信操作,避免与主线程或其他线程相互干扰。每个组件对象管理一个 Socket 连接。rn   [b]Server 组件:[/b]基于 IOCP 通信模型,并结合缓存池、私有堆(Private Heap)等技术,支持超大规模连接,在高并发场景下实现高效内存管理。rn   [b]Agent 组件:[/b]对于代理服务器或中转服务器等应用场景,服务器自身也作为客户端向其它服务器发起大规模连接,一个 Agent 组件对象同时可管理多个 Socket 连接;Agent 组件与 Server 组件采用相同的技术架构,可以用作代理服务器或中转服务器的客户端部件。rn rn[b][size=14px]【伸缩性】[/size][/b]rn   应用程序能够根据不同的容量要求、通信规模和资源状况等现实场景调整 HP-Socket 的各项性能参数(如:工作线程的数量、缓存池的大小、发送模式和接收模式等),优化资源配置,在满足应用需求的同时不必过度浪费资源。rn------------------------------------------------------------------------------------------------rn rn[b][size=16px][color=#0000FF]*** v3.5.3 更新 ***[/color][/size][/b]rn rn[b][i]> Bug 修复:[/i][/b]rn-----------------rn 1、修复 IClient 组件在极端情况下触发两次 OnClose() 事件 Bugrn 2、修复 IClient 组件在极端情况下销毁 IClient 对象导致程序崩溃 Bugrn------------------------------------------------------------------------------------------------rnrn[b][size=16px][color=#0000FF]*** v3.5.2 更新 ***[/color][/size][/b]rn rn[b][i]> 组件接口调整:[/i][/b]rn-----------------rn 1、IClient 组件 Start() 方法默认连接方式改为异步连接rn 2、IClient 组件 Start() 方法增加可选参数 lpszBindAddress,设置绑定地址rn 3、HP-Socket 4C 增加导出方法 HP_Client_StartWithBindAddress() 方法,可设置绑定地址rn 4、IUdpCast 组件删除接口方法 Get/SetBindAddress()rn 5、IServer 接口 增加 GetLocalAddress() 方法用于获取连接的本地地址信息rn 6、增加全局函数 SYS_GetSocketLocalAddress() 和 SYS_GetSocketRemoteAddress() 分别用于获取 SOCKET 本地和远程地址信息rn------------------------------------------------------------------------------------------------rn rn[b][size=16px][color=#0000FF]*** v3.5.1 更新 ***[/color][/size][/b]rn rn[b][i]> 增加 SSL 系列通信组件:[/i][/b]rn-----------------rn 1、新增 SSL PUSH 组件:CSSLServer、CSSLAgent、CSSLClientrn 2、新增 SSL PULL 组件:CSSLPullServer、CSSLPullAgent、CSSLPullClientrn 3、新增 SSL PACK 组件:CSSLPackServer、CSSLPackAgent、CSSLPackClientrn 4、SSL Server 实现 ITcpServer 接口,SSL Agent 实现 ITcpAgent 接口,SSL Client 实现 ITcpClient 接口rn 5、启动 SSL 通信组件前需要调用 HP_SSL_Initialize() 函数初始化 SSL 全局环境参数rn 6、通信结束后调用 HP_SSL_Cleanup() 函数清理 SSL 全局运行环境rn 7、新增 SSL 相关示例 Demo:rn 1) TestEcho-SSL (源代码)rn 2) TestEcho-SSL-Pack (DLL / 4C DLL)rn 3) TestEcho-SSL-4C (4C LIB)rn 4) TestEcho-SSL-PFM (LIB)rn[img=https://img-bbs.csdn.net/upload/201605/23/1463992712_737233.jpg][/img]rnrn[b][i]> 组件接口调整:[/i][/b]rn-----------------rn 1、ITcpServerListener 接口增加 SSL 握手成功事件:OnHandShake(CONNID dwConnID)rn 2、ITcpAgentListener 接口增加 SSL 握手成功事件:OnHandShake(CONNID dwConnID)rn 3、ITcpClientListener 接口增加 SSL 握手成功事件:OnHandShake(IClient* pClient)rn 4、枚举类型 EnSocketError 增加‘SSL 环境未就绪’错误代码 SE_SSL_ENV_NOT_READYrn 5、增加枚举类型:EnSSLSessionMode(SSL 工作模式),EnSSLVerifyMode(SSL 验证模式)rn 6、HPSocket-SSL DLL 主要头文件:SocketInterface-SSL.h,HPSocket-SSL.hrn 7、HPSocket4C-SSL DLL 主要头文件:HPSocket4C-SSL.hrn 8、Tcp Pack 系列组件可设置的最大包长调整为 4194303/0x3FFFFF 字节rn 9、Tcp Pack 系列组件的有效包头标识取值范围调整为 0 ~ 1023/0x3FFrnrn[b][i]> 增加静态库工程:[/i][/b]rn-----------------rn 1、新增项目工程 HPSocketLIB 和 HPSocketLIB4C 用于编译 HPSocket 和 HPSocket4C 静态库rn 2、静态库与动态库的使用方式一致(请参考示例 Demo:TestEcho-SSL-4C 和 TestEcho-SSL-PFM)rn 3、使用 HPSocket 或 HPSocket4C 静态库时,需要在工程属性中定义预处理宏 -> HPSOCKET_STATIC_LIBrn 4、静态库目标文件不包含在发布包中(因为太大),如果需要请自行编译rn------------------------------------------------------------------------------------------------rnrn[b][size=16px][color=#0000FF]*** v3.4.1 更新 ***[/color][/size][/b]rn rn[b][i]> 增加 Tcp Pack 系列通信组件:[/i][/b]rn-----------------rn 1、Tcp Pack 系列组件保证每个 OnReceive 事件都向应用程序提供一个完整数据包rn 2、Tcp Pack 系列组件是 PUSH/PULL 模式的结合体,应用程序不必处理分包(如:PUSH)与数据抓取(如:PULL)rn 3、Tcp Pack 系列组件提供 Get/SetMaxPackSize() 和 Get/SetPackHeaderFlag() 方法,用来设置最大包长和包头标识rn 4、CTcpPackServer 实现 ITcpServer 接口,CTcpPackAgent 实现 ITcpAgent 接口,CTcpPackClient 实现 ITcpClient 接口rn[img=https://img-bbs.csdn.net/upload/201603/27/1459080805_239193.jpg][/img]rnrn[b][i]> 组件接口调整:[/i][/b]rn-----------------rn 1、OnClose/OnError 合并为一个通信事件: OnClose(CONNID dwConnID, EnSocketOperation enOperation, int iErrorCode)rn 2、枚举类型 EnSocketOperation 增加一个枚举值: SO_CLOSE = 5,标识关闭 Socket 操作rn 3、IServer 和 IAgent 接口删除接口方法: Get/SetRecvPolicy()rn 4、IServer 和 IAgent 接口删除接口方法: Get/SetMaxShutdownWaitTime()rn------------------------------------------------------------------------------------------------
高性能 TCP & UDP 通信框架 HP-Socket v5.1.1 for Windows
[url=http://www.jessma.org][img=https://img-bbs.csdn.net/upload/201403/29/1396091144_455532.png][/img][/url]rn[color=#800000]  HP-Socket 是一套通用的<em>高性能</em> TCP/UDP/HTTP 通信框架,包含服务端组件、客户端组件和 Agent 组件,广泛适用于各种不同应用场景的 TCP/UDP/HTTP 通信系统,提供 C/C++、C#、Delphi、E(易语言)、Java、Python 等编程语言接口。HP-Socket 对通信层实现完全封装,应用程序不必关注通信层的任何细节;HP-Socket 提供基于事件通知模型的 API 接口,能非常简单高效地整合到新旧应用程序中。rn  为了让使用者能方便快速地学习和使用 HP-Socket,迅速掌握框架的设计思想和使用方法,特此精心制作了大量 Demo 示例(如:PUSH 模型示例、PULL 模型示例、性能测试示例以及其它编程语言示例)。[i][b]HP-Socket for Linux[/b][/i] 即将发布,敬请期待。[/color]rnrn * HP-Socket 官方网站:[url=http://www.jessma.org]http://www.jessma.org[/url]rn * HP-Socket 项目主页:[url=https://github.com/ldcsaa/HP-Socket]https://github.com/ldcsaa/HP-Socket[/url]rn * HP-Socket 开发文档:[url=http://www.oschina.net/action/project/go?id=25210&p=doc]http://www.oschina.net/p/hp-socket/doc[/url]rn ------------------------------------------------------------------------------------------------rn[b] [size=14px]【通用性】[/size][/b]rn   1、HP-Socket 的唯一职责就是接收和发送字节流,不参与应用程序的协议解析等工作。rn   2、HP-Socket 与应用程序通过接口进行交互,并完全解耦。任何应用只要实现了 HP-Socket 的接口规范都可以无缝整合 HP-Socket。rn rn[b][size=14px]【易用性】[/size][/b]rn   1、易用性对所有通用框架都是至关重要的,如果太难用还不如自己重头写一个来得方便。因此,HP-Socket 的接口设计得非常简单和统一。rn   2、HP-Socket 完全封装了所有底层通信细节,应用程序不必也不能干预底层通信操作。通信连接被抽象为 Connection ID,Connection ID 作为连接的唯一标识提供给应用程序来处理不同的连接。rn   3、HP-Socket 提供 PUSH / PULL / PACK 等接收模型, 应用程序可以灵活选择以手工方式、 半自动方式或全自动方式处理封解包, PULL / PACK 接收模型在降低封解包处理复杂度的同时能大大减少出错几率。rnrn[b][size=14px]【<em>高性能</em>】[/size][/b]rn   [b]Client 组件:[/b]基于 Event Select 通信模型,在单独线程中执行通信操作,避免与主线程或其他线程相互干扰。每个组件对象管理一个 Socket 连接。rn   [b]Server 组件:[/b]基于 IOCP 通信模型,并结合缓存池、私有堆(Private Heap)等技术,支持超大规模连接,在高并发场景下实现高效内存管理。rn   [b]Agent 组件:[/b]对于代理服务器或中转服务器等应用场景,服务器自身也作为客户端向其它服务器发起大规模连接,一个 Agent 组件对象同时可管理多个 Socket 连接;Agent 组件与 Server 组件采用相同的技术架构,可以用作代理服务器或中转服务器的客户端部件。rn rn[b][size=14px]【伸缩性】[/size][/b]rn   应用程序能够根据不同的容量要求、通信规模和资源状况等现实场景调整 HP-Socket 的各项性能参数(如:工作线程的数量、缓存池的大小、发送模式和接收模式等),优化资源配置,在满足应用需求的同时不必过度浪费资源。rn------------------------------------------------------------------------------------------------rn rn[b][size=16px][color=#0000FF]*** v5.1.1 更新 ***[/color][/size][/b]rnrn[b][i]> 增加暂停接收功能:[/i][/b]rn----------------- rn 1、所有 Server/Agent/Client 组件增加‘暂停接收数据’功能(UDP Server 组件除外)rn 2、API 更新:[code=c]1) HP_Server_PauseReceive (增加)rn2) HP_Server_IsPauseReceive (增加)rn3) HP_Agent_PauseReceive (增加)rn4) HP_Agent_IsPauseReceive (增加)rn5) HP_Client_PauseReceive (增加)rn6) HP_Client_IsPauseReceive (增加)[/code]rnrn[b][i]> 其它更新:[/i][/b]rn-----------------rn 1、TCP Agent 增加方法 HP_Agent_ConnectWithExtra(),支持在连接完成前绑定附加数据rn 2、公共代码包 vc-common-src 版本升级到 v2.3.22rn 3、OpenSSL 版本升级到 1.1.0grn------------------------------------------------------------------------------------------------rn rn[b][size=16px][color=#0000FF]*** v5.0.1 更新 ***[/color][/size][/b]rnrn[b][i]> IPv6 支持:[/i][/b]rn----------------- rn 1、所有通信组件支持 IPv6rn 2、组件接口没有变化,组件内部通过传入的地址参数自动识别 IPv4 / IPv6rn 3、API 更新:[code=c]1) enum En_HP_IPAddrType (增加)rn2) struct HP_TIPAddr (增加)rn3) SYS_GetIPv4InAddr (删除)rn4) SYS_GetOptimalIPByHostName (删除)rn5) SYS_IsIPAddress (修改)rn6) SYS_GetIPAddress (修改)rn7) SYS_EnumHostIPAddresses (增加)rn8) SYS_FreeHostIPAddresses (增加)[/code]rnrn[b][i]> SSL 通信组件:[/i][/b]rn-----------------rn 1、多 SSL 证书支持,每个通信组件对象可以使用不同的 SSL 证书rn 2、通信组件对象绑定独立的 SSL Context,取代旧版本的全局唯一 SSL Contextrn 3、API 更新:[code=c]1) HP_SSL_Initialize (删除)rn2) HP_SSL_Cleanup (删除)rn3) HP_SSL_IsValid (删除)rn4) HP_SSLAgent_SetupSSLContext (增加)rn5) HP_SSLClient_SetupSSLContext (增加)rn6) HP_SSLServer_SetupSSLContext (增加)rn7) HP_SSLServer_AddSSLContext (增加)rn8) HP_SSLAgent_CleanupSSLContext (增加)rn9) HP_SSLClient_CleanupSSLContext (增加)rn10) HP_SSLServer_CleanupSSLContext (增加)[/code]rn------------------------------------------------------------------------------------------------rnrn[b][size=16px][color=#0000FF]*** v4.2.1 更新 ***[/color][/size][/b]rnrn[b][i]> HTTP Cookie 管理支持:[/i][/b]rn----------------- rn 1、新增 Cookie 管理器,可在不同连接、不同组件对象间共享 Cookiern 2、Cookie 管理器实现了标准 HTTP Cookie 功能,支持 Max-Age、expires、httpOnly、securern 3、Cookie 管理器支持 Cookie 序列化与反序列化rn 4、IHttpClient 和 IHttpAgent 组件可通过 SetUseCookie() 方法设置是否开启 Cookie 功能rn[img=https://img-bbs.csdn.net/upload/201704/20/1492684145_272465.png][/img]rn[b][i]> HTTP Sync Client 通信组件更新:[/i][/b]rn-----------------rn 1、Create_HP_HttpSyncClient 和 Create_HP_HttpsSyncClient 方法增加可选参数 pListenerrn 2、如果 pListener 非空则可以通过 pListener 监听 HttpSyncClient 的所有通信事件rnrn[b][i]> 其它更新:[/i][/b]rn-----------------rn 1、Demo 更新:HttpProxy,TestEcho-Http,TestEcho-Http-4Crn 2、公共代码包 vc-common-src 版本升级到 v2.3.18rn 3、OpenSSL 版本升级到 1.1.0ern------------------------------------------------------------------------------------------------rn rn[b][size=16px][color=#0000FF]*** v4.1.3 更新 ***[/color][/size][/b]rnrn[b][i]> WebSocket 支持:[/i][/b]rn----------------- rn 1、所有 HTTP 组件增加 WebSocket 方法:rn 1) SendWSMessage(): 发送 WebSocket 数据包rn 2) GetWSMessageState(): 获取当前 WebSocket 状态rn 2、所有 HTTP 组件监听器增加 WebSocket 事件:rn 1) OnWSMessageHeader(): WebSocket 数据包头通知rn 2) OnWSMessageBody(): WebSocket 数据包体通知rn 3) OnWSMessageComplete(): WebSocket 数据包完成通知rn 3、示例 Demo TestEcho-Http 和 TestEcho-Http-4C 支持 WebSocketrnrn[b][i]> 增加 HTTP Sync Client 通信组件:[/i][/b]rn-----------------rn 1、HTTP Sync Client 实现同步 HTTP 通信,不需要事件监听器rn 2、HTTP Sync Client 组件类: CHttpSyncClient、CHttpsSyncClientrn 3、HTTP Sync Client 实现接口: ITcpClient / IHttpSyncRequesterrn 4、示例 Demo TestEcho-Http 和 TestEcho-Http-4C 提供 HTTP Sync Client 示例rn------------------------------------------------------------------------------------------------
高性能 TCP & UDP 通信框架 HP-Socket v3.5.1 发布
[url=http://www.jessma.org][img=https://img-bbs.csdn.net/upload/201403/29/1396091144_455532.png][/img][/url]rn[color=#800000]  HP-Socket 是一套通用的<em>高性能</em> TCP/UDP 通信框架,包含服务端组件、客户端组件和 Agent 组件,广泛适用于各种不同应用场景的 TCP/UDP 通信系统,提供 C/C++、C#、Delphi、E(易语言)、Java、Python 等编程语言接口。HP-Socket 对通信层实现完全封装,应用程序不必关注通信层的任何细节;HP-Socket 提供基于事件通知模型的 API 接口,能非常简单高效地整合到新旧应用程序中。rn  为了让使用者能方便快速地学习和使用 HP-Socket,迅速掌握框架的设计思想和使用方法,特此精心制作了大量 Demo 示例(如:PUSH 模型示例、PULL 模型示例、性能测试示例以及其它编程语言示例)。HP-Socket 目前运行在 Windows 平台,将来会实现跨平台支持。[/color]rnrn * HP-Socket 官方网站:[url=http://www.jessma.org]http://www.jessma.org[/url]rn * HP-Socket 项目主页:[url=http://www.oschina.net/p/hp-socket]http://www.oschina.net/p/hp-socket[/url]rn * HP-Socket 开发文档:[url=http://www.oschina.net/action/project/go?id=25210&p=doc]http://www.oschina.net/p/hp-socket/doc[/url]rn ------------------------------------------------------------------------------------------------rn[b] [size=14px]【通用性】[/size][/b]rn   1、HP-Socket 的唯一职责就是接收和发送字节流,不参与应用程序的协议解析等工作。rn   2、HP-Socket 与应用程序通过接口进行交互,并完全解耦。任何应用只要实现了 HP-Socket 的接口规范都可以无缝整合 HP-Socket。rn rn[b][size=14px]【易用性】[/size][/b]rn   1、易用性对所有通用框架都是至关重要的,如果太难用还不如自己重头写一个来得方便。因此,HP-Socket 的接口设计得非常简单和统一。rn   2、HP-Socket 完全封装了所有底层通信细节,应用程序不必也不能干预底层通信操作。通信连接被抽象为 Connection ID,Connection ID 作为连接的唯一标识提供给应用程序来处理不同的连接。rn   3、HP-Socket 提供 PUSH / PULL / PACK 等接收模型, 应用程序可以灵活选择以手工方式、 半自动方式或全自动方式处理封解包, PULL / PACK 接收模型在降低封解包处理复杂度的同时能大大减少出错几率。rnrn[b][size=14px]【<em>高性能</em>】[/size][/b]rn   [b]Client 组件:[/b]基于 Event Select 通信模型,在单独线程中执行通信操作,避免与主线程或其他线程相互干扰。每个组件对象管理一个 Socket 连接。rn   [b]Server 组件:[/b]基于 IOCP 通信模型,并结合缓存池、私有堆(Private Heap)等技术,支持超大规模连接,在高并发场景下实现高效内存管理。rn   [b]Agent 组件:[/b]对于代理服务器或中转服务器等应用场景,服务器自身也作为客户端向其它服务器发起大规模连接,一个 Agent 组件对象同时可管理多个 Socket 连接;Agent 组件与 Server 组件采用相同的技术架构,可以用作代理服务器或中转服务器的客户端部件。rn rn[b][size=14px]【伸缩性】[/size][/b]rn   应用程序能够根据不同的容量要求、通信规模和资源状况等现实场景调整 HP-Socket 的各项性能参数(如:工作线程的数量、缓存池的大小、发送模式和接收模式等),优化资源配置,在满足应用需求的同时不必过度浪费资源。rn------------------------------------------------------------------------------------------------rn rn[b][size=16px][color=#0000FF]*** v3.5.1 更新 ***[/color][/size][/b]rn rn[b][i]> 增加 SSL 系列通信组件:[/i][/b]rn-----------------rn 1、新增 SSL PUSH 组件:CSSLServer、CSSLAgent、CSSLClientrn 2、新增 SSL PULL 组件:CSSLPullServer、CSSLPullAgent、CSSLPullClientrn 3、新增 SSL PACK 组件:CSSLPackServer、CSSLPackAgent、CSSLPackClientrn 4、SSL Server 实现 ITcpServer 接口,SSL Agent 实现 ITcpAgent 接口,SSL Client 实现 ITcpClient 接口rn 5、启动 SSL 通信组件前需要调用 HP_SSL_Initialize() 函数初始化 SSL 全局环境参数rn 6、通信结束后调用 HP_SSL_Cleanup() 函数清理 SSL 全局运行环境rn 7、新增 SSL 相关示例 Demo:rn 1) TestEcho-SSL (源代码)rn 2) TestEcho-SSL-Pack (DLL / 4C DLL)rn 3) TestEcho-SSL-4C (4C LIB)rn 4) TestEcho-SSL-PFM (LIB)rn[img=https://img-bbs.csdn.net/upload/201605/23/1463992712_737233.jpg][/img]rnrn[b][i]> 组件接口调整:[/i][/b]rn-----------------rn 1、ITcpServerListener 接口增加 SSL 握手成功事件:OnHandShake(CONNID dwConnID)rn 2、ITcpAgentListener 接口增加 SSL 握手成功事件:OnHandShake(CONNID dwConnID)rn 3、ITcpClientListener 接口增加 SSL 握手成功事件:OnHandShake(IClient* pClient)rn 4、枚举类型 EnSocketError 增加‘SSL 环境未就绪’错误代码 SE_SSL_ENV_NOT_READYrn 5、增加枚举类型:EnSSLSessionMode(SSL 工作模式),EnSSLVerifyMode(SSL 验证模式)rn 6、HPSocket-SSL DLL 主要头文件:SocketInterface-SSL.h,HPSocket-SSL.hrn 7、HPSocket4C-SSL DLL 主要头文件:HPSocket4C-SSL.hrn 8、Tcp Pack 系列组件可设置的最大包长调整为 4194303/0x3FFFFF 字节rn 9、Tcp Pack 系列组件的有效包头标识取值范围调整为 0 ~ 1023/0x3FFrnrn[b][i]> 增加静态库工程:[/i][/b]rn-----------------rn 1、新增项目工程 HPSocketLIB 和 HPSocketLIB4C 用于编译 HPSocket 和 HPSocket4C 静态库rn 2、静态库与动态库的使用方式一致(请参考示例 Demo:TestEcho-SSL-4C 和 TestEcho-SSL-PFM)rn 3、使用 HPSocket 或 HPSocket4C 静态库时,需要在工程属性中定义预处理宏 -> HPSOCKET_STATIC_LIBrn 4、静态库目标文件不包含在发布包中(因为太大),如果需要请自行编译rn------------------------------------------------------------------------------------------------rnrn[b][size=16px][color=#0000FF]*** v3.4.1 更新 ***[/color][/size][/b]rn rn[b][i]> 增加 Tcp Pack 系列通信组件:[/i][/b]rn-----------------rn 1、Tcp Pack 系列组件保证每个 OnReceive 事件都向应用程序提供一个完整数据包rn 2、Tcp Pack 系列组件是 PUSH/PULL 模式的结合体,应用程序不必处理分包(如:PUSH)与数据抓取(如:PULL)rn 3、Tcp Pack 系列组件提供 Get/SetMaxPackSize() 和 Get/SetPackHeaderFlag() 方法,用来设置最大包长和包头标识rn 4、CTcpPackServer 实现 ITcpServer 接口,CTcpPackAgent 实现 ITcpAgent 接口,CTcpPackClient 实现 ITcpClient 接口rn[img=https://img-bbs.csdn.net/upload/201603/27/1459080805_239193.jpg][/img]rnrn[b][i]> 组件接口调整:[/i][/b]rn-----------------rn 1、OnClose/OnError 合并为一个通信事件: OnClose(CONNID dwConnID, EnSocketOperation enOperation, int iErrorCode)rn 2、枚举类型 EnSocketOperation 增加一个枚举值: SO_CLOSE = 5,标识关闭 Socket 操作rn 3、IServer 和 IAgent 接口删除接口方法: Get/SetRecvPolicy()rn 4、IServer 和 IAgent 接口删除接口方法: Get/SetMaxShutdownWaitTime()rn------------------------------------------------------------------------------------------------
高性能 TCP & UDP 通信框架 HP-Socket v4.3.1
[url=http://www.jessma.org][img=https://img-bbs.csdn.net/upload/201403/29/1396091144_455532.png][/img][/url]rn[color=#800000]  HP-Socket 是一套通用的<em>高性能</em> TCP/UDP/HTTP 通信框架,包含服务端组件、客户端组件和 Agent 组件,广泛适用于各种不同应用场景的 TCP/UDP/HTTP 通信系统,提供 C/C++、C#、Delphi、E(易语言)、Java、Python 等编程语言接口。HP-Socket 对通信层实现完全封装,应用程序不必关注通信层的任何细节;HP-Socket 提供基于事件通知模型的 API 接口,能非常简单高效地整合到新旧应用程序中。rn  为了让使用者能方便快速地学习和使用 HP-Socket,迅速掌握框架的设计思想和使用方法,特此精心制作了大量 Demo 示例(如:PUSH 模型示例、PULL 模型示例、性能测试示例以及其它编程语言示例)。HP-Socket 目前运行在 Windows 平台,将来会实现跨平台支持。[/color]rnrn * HP-Socket 官方网站:[url=http://www.jessma.org]http://www.jessma.org[/url]rn * HP-Socket 项目主页:[url=https://github.com/ldcsaa/HP-Socket]https://github.com/ldcsaa/HP-Socket[/url]rn * HP-Socket 开发文档:[url=http://www.oschina.net/action/project/go?id=25210&p=doc]http://www.oschina.net/p/hp-socket/doc[/url]rn ------------------------------------------------------------------------------------------------rn[b] [size=14px]【通用性】[/size][/b]rn   1、HP-Socket 的唯一职责就是接收和发送字节流,不参与应用程序的协议解析等工作。rn   2、HP-Socket 与应用程序通过接口进行交互,并完全解耦。任何应用只要实现了 HP-Socket 的接口规范都可以无缝整合 HP-Socket。rn rn[b][size=14px]【易用性】[/size][/b]rn   1、易用性对所有通用框架都是至关重要的,如果太难用还不如自己重头写一个来得方便。因此,HP-Socket 的接口设计得非常简单和统一。rn   2、HP-Socket 完全封装了所有底层通信细节,应用程序不必也不能干预底层通信操作。通信连接被抽象为 Connection ID,Connection ID 作为连接的唯一标识提供给应用程序来处理不同的连接。rn   3、HP-Socket 提供 PUSH / PULL / PACK 等接收模型, 应用程序可以灵活选择以手工方式、 半自动方式或全自动方式处理封解包, PULL / PACK 接收模型在降低封解包处理复杂度的同时能大大减少出错几率。rnrn[b][size=14px]【<em>高性能</em>】[/size][/b]rn   [b]Client 组件:[/b]基于 Event Select 通信模型,在单独线程中执行通信操作,避免与主线程或其他线程相互干扰。每个组件对象管理一个 Socket 连接。rn   [b]Server 组件:[/b]基于 IOCP 通信模型,并结合缓存池、私有堆(Private Heap)等技术,支持超大规模连接,在高并发场景下实现高效内存管理。rn   [b]Agent 组件:[/b]对于代理服务器或中转服务器等应用场景,服务器自身也作为客户端向其它服务器发起大规模连接,一个 Agent 组件对象同时可管理多个 Socket 连接;Agent 组件与 Server 组件采用相同的技术架构,可以用作代理服务器或中转服务器的客户端部件。rn rn[b][size=14px]【伸缩性】[/size][/b]rn   应用程序能够根据不同的容量要求、通信规模和资源状况等现实场景调整 HP-Socket 的各项性能参数(如:工作线程的数量、缓存池的大小、发送模式和接收模式等),优化资源配置,在满足应用需求的同时不必过度浪费资源。rn------------------------------------------------------------------------------------------------rn rn[b][size=16px][color=#0000FF]*** v4.3.1 更新 ***[/color][/size][/b]rnrn[b][i]> HTTP Cookie 管理支持:[/i][/b]rn----------------- rn 1、IHttpClient 和 IHttpAgent 组件兼容没有长度标识(如:Content-Length Header)的 HTTP 响应报文rn 2、IHttpClient 和 IHttpAgent 组件改进 HEAD 请求的响应处理方式,应用程序无需在 OnHeadersComplete 事件中返回特殊值 HPR_SKIP_BODYrnrn[b][i]> 其它更新:[/i][/b]rn-----------------rn 1、公共代码包 vc-common-src 版本升级到 v2.3.19rn 2、OpenSSL 版本升级到 1.1.0frn 3、优化 IServer/IAgent 组件,提升性能和稳定性rn------------------------------------------------------------------------------------------------rnrn[b][size=16px][color=#0000FF]*** v4.2.1 更新 ***[/color][/size][/b]rnrn[b][i]> HTTP Cookie 管理支持:[/i][/b]rn----------------- rn 1、新增 Cookie 管理器,可在不同连接、不同组件对象间共享 Cookiern 2、Cookie 管理器实现了标准 HTTP Cookie 功能,支持 Max-Age、expires、httpOnly、securern 3、Cookie 管理器支持 Cookie 序列化与反序列化rn 4、IHttpClient 和 IHttpAgent 组件可通过 SetUseCookie() 方法设置是否开启 Cookie 功能rn[img=https://img-bbs.csdn.net/upload/201704/20/1492684145_272465.png][/img]rn[b][i]> HTTP Sync Client 通信组件更新:[/i][/b]rn-----------------rn 1、Create_HP_HttpSyncClient 和 Create_HP_HttpsSyncClient 方法增加可选参数 pListenerrn 2、如果 pListener 非空则可以通过 pListener 监听 HttpSyncClient 的所有通信事件rnrn[b][i]> 其它更新:[/i][/b]rn-----------------rn 1、Demo 更新:HttpProxy,TestEcho-Http,TestEcho-Http-4Crn 2、公共代码包 vc-common-src 版本升级到 v2.3.18rn 3、OpenSSL 版本升级到 1.1.0ern------------------------------------------------------------------------------------------------rn rn[b][size=16px][color=#0000FF]*** v4.1.3 更新 ***[/color][/size][/b]rnrn[b][i]> WebSocket 支持:[/i][/b]rn----------------- rn 1、所有 HTTP 组件增加 WebSocket 方法:rn 1) SendWSMessage(): 发送 WebSocket 数据包rn 2) GetWSMessageState(): 获取当前 WebSocket 状态rn 2、所有 HTTP 组件监听器增加 WebSocket 事件:rn 1) OnWSMessageHeader(): WebSocket 数据包头通知rn 2) OnWSMessageBody(): WebSocket 数据包体通知rn 3) OnWSMessageComplete(): WebSocket 数据包完成通知rn 3、示例 Demo TestEcho-Http 和 TestEcho-Http-4C 支持 WebSocketrnrn[b][i]> 增加 HTTP Sync Client 通信组件:[/i][/b]rn-----------------rn 1、HTTP Sync Client 实现同步 HTTP 通信,不需要事件监听器rn 2、HTTP Sync Client 组件类: CHttpSyncClient、CHttpsSyncClientrn 3、HTTP Sync Client 实现接口: ITcpClient / IHttpSyncRequesterrn 4、示例 Demo TestEcho-Http 和 TestEcho-Http-4C 提供 HTTP Sync Client 示例rn------------------------------------------------------------------------------------------------rn rn[b][size=16px][color=#0000FF]*** v4.0.1 更新 ***[/color][/size][/b]rnrn[b][i]> 增加 HTTP 系列通信组件:[/i][/b]rn----------------- rn[img=https://img-bbs.csdn.net/upload/201610/08/1475857393_73495.png][/img]rn[img=https://img-bbs.csdn.net/upload/201610/08/1475857418_443165.png][/img]rn 1、新增 HTTP Server 组件:rn 1) 组件类: CHttpServer、CHttpsServerrn 2) 实现接口: ITcpServer / IComplexHttpResponderrn 3) 监听器接口: IHttpServerListenerrn 2、新增 HTTP Agent 组件:rn 1) 组件类: CHttpAgent、CHttpsAgentrn 2) 实现接口: ITcpAgent / IComplexHttpRequesterrn 3) 监听器接口: IHttpAgentListenerrn 3、新增 HTTP Client 组件:rn 1) 组件类: CHttpClient、CHttpsClientrn 2) 实现接口: ITcpClient / IHttpRequesterrn 3) 监听器接口: IHttpClientListenerrn 4、新增 HTTP 示例 Demo:rn 1) TestEcho-Http (源代码)rn 2) TestEcho-Http-4C (4C LIB / 4C DLL)rn 5、Http 监听器:rn 1) 监听器事件:[code=text]OnMessageBegin() : 【可选】开始解析rnOnRequestLine() : 【可选】请求行解析完成(仅用于 HTTP 服务端)rnOnStatusLine() : 【可选】状态行解析完成(仅用于 HTTP 客户端)rnOnHeader() : 【可选】请求头通知rnOnHeadersComplete() : 【必须】请求头完成通知rnOnBody() : 【必须】请求体报文通知rnOnChunkHeader() : 【可选】Chunked 报文头通知rnOnChunkComplete() : 【可选】Chunked 报文结束通知rnOnMessageComplete() : 【必须】完成解析通知rnOnUpgrade() : 【可选】升级协议通知rnOnParseError() : 【必须】解析错误通知[/code] 2) 监听器事件返回值(EnHttpParseResult):rn[code=text]HPR_OK : 继续解析rnHPR_SKIP_BODY : 跳过当前请求 BODY(仅用于 OnHeadersComplete 事件)rnHPR_UPGRADE : 升级协议(仅用于 OnHeadersComplete 事件)rnHPR_ERROR : 终止解析,断开连接[/code][b][i]> 组件接口调整:[/i][/b]rn-----------------rn 1、IServer 和 IAgent 组件的所有监听器回调方法增加‘事件源’参数,如:OnShutdown() -> OnShutdown(T* pSender)rn 2、IClient 组件的所有监听器回调方法增加‘连接ID’参数,如:OnHandShake(IClient* pClient) -> OnHandShake(T* pSender, CONNID dwConnID)rn 3、IServer 和 IAgent 接口增加接口方法: Get/SetMaxConnectionCount() 用于设置最大连接数,最大连接数默认:10000rn 4、OnHandShake() 事件触发规则调整:非 SSL 组件在 OnConnect() 事件后也触发 OnHandShake() 事件,使 SSL 组件和 SSL 组件处理流程一致rn 5、HPSocket4C 增加 PACK 组件监听器的创建、销毁方法,新版本必须使用下列方法创建、销毁 PACK 组件监听器:rn 1) Create_HP_TcpPackServerListener / Destroy_HP_TcpPackServerListenerrn 2) Create_HP_TcpPackAgentListener / Destroy_HP_TcpPackAgentListenerrn 3) Create_HP_TcpPackClientListener / Destroy_HP_TcpPackClientListenerrn 6、SSL 组件支持 SNIrn 1) SSL 初始化方法 HP_SSL_Initialize(),增加 SNI 回调函数指针参数rn 2) 新增方法 HP_SSL_AddServerContext(),用于 加载 SNI 主机证书rn------------------------------------------------------------------------------------------------
关于linux下高性能TCP server的设计主题
请大家发表自己的看法。rn特别是针对HTTP server这种server的设计。rn
高性能
<em>高性能</em>架构设计主要集中在两方面: 尽量提升单服务器的性能,将单服务器的性能发挥到极致。 如果单服务器无法支撑性能,设计服务器集群方案。 除了以上两点,最终系统能否实现<em>高性能</em>,还和具体的实现及编码相关。但架构设计是<em>高性能</em>的基础,如果架构设计没有做到<em>高性能</em>,则后面的具体实现和编码能提升的空间是有限的。形象地说,架构设计决定了系统性能的上限,实现细节决定了系统性能的下限。 单服务器<em>高性能</em>的关键之一...
高性能前端~高性能HTML
转自:http://www.alloyteam.com/2012/10/high-performance-html/ 避免使用Iframe Iframe也叫内联frame,可以把一个HTML文档嵌入到另一个文档中。使用iframe的好处是被嵌入的文档可以完全独立于其父文档,凭借此特点我们通常可以使浏览器模拟多线程,需要注意的是使用iframe并不会增加同域名下的并行下载数,浏览
高性能数据中心(高性能数据中心)
<em>高性能</em>数据中心 <em>高性能</em>数据中心 <em>高性能</em>数据中心
高性能Mysql-创建高性能索引
索引(在MySQL中也叫做 “键(key)”)是存储引擎用于快速找到记录的一种数据结构。索引对于良好的性能非常关键。 尤其是当表中的数据量越来越大时, 索引对性能的影响愈发重要。 在数据量较小且负载较低时, 不恰当的索引对性能的影响可能还不明显, 但当数据量逐渐增大时, 性能则会急剧下降。索引优化应该是对查询性能优化最有效的手段了。索引能够轻易将查询性能提高几个数量级, “最优” 的索引有时比一个...
高性能架构-存储高性能-NoSQL
2019独角兽企业重金招聘Python工程师标准&gt;&gt;&gt; ...
高性能Mysql——创建高性能的索引
文章目录索引类型<em>高性能</em>的索引策略独立的列前缀索引和索引选择性多列索引覆盖索引使用索引扫描来做排序重复索引和冗余索引 索引类型 我们知道,索引的实现有很多种,在Mysql中,索引是在引擎中实现的,所以没有统一的索引类型标准。 B-Tree索引 关于这方面的索引原理,参考我之前写的文章伸缩自如的ElasticSearch——数据库索引原理。 哈希索引 基于哈希表的实现,只有精确匹配索引所有列的查询才有...
MySQL高性能 创建高性能的索引
索引能够轻易将查询性能提高几个数量级。
[高性能MySQL]-创建高性能的索引
本文是关于创建索引的的内容: (1) 索引的类型 (2)索引的优点 (3)优化索引的策略 这里给出一个索引的思维导图: 索引是存储引擎用于快速找到记录的一种数据结构。索引是对 查询性能优化 最有效的手段了,索引能够轻松将查询性能提升几个数量级。索引我们一般都是对某一列加索引。存储引擎先在索引中找到对应值,然后根据匹配的索引记录上的rowid找到对应的数据行。比如运行如下查询语句:
高性能mysql笔记-高性能索引
<em>高性能</em>索引 写在开头一些重要的话,如题<em>高性能</em>的索引。现在很多文章或者博客都会有一些索引建立的规则。 比如说程序员必须掌握的10条SQL技巧,你不知道的SQL10条索引规则。 而且这些文章的阅读量比其他讲原理性的要高。能够体现出如今码农们急躁的心理。想通过这些技巧就掌握 索引优化。举个明显的例子,前导模糊查询不能使用索引 select * from order where desc l...
高性能MySQL 第五章高性能索引
创建<em>高性能</em>的索引1 索引类型1.1 B-Tree索引 1 索引类型 索引(在MySQL中也叫做“键(key)”)是存储引擎用于快速找到记录的一种数据结构(这是索引的本质)。当表中的数据比较少的时候,查询的频率比较低的情况下,索引的作用还不是太明显,这时表中的数据可以完全缓存到内存中,就算进行全表扫描也不会太慢;随着表中的数据越来越多,查询频率越来越高,内存已经不能完全缓存数据的时候,索引的性能的提...
高性能架构-存储高性能-关系型数据库
2019独角兽企业重金招聘Python工程师标准&gt;&gt;&gt; ...
高性能MySQL》创建高性能的索引
文章目录前言索引基础索引类型索引的优点<em>高性能</em>的索引策略索引案例学习维护索引和表总结 前言 索引是存储引擎用于快速找到记录的一种数据结构 索引基础 索引是在存储引擎层而不是服务层实现 不同存储引擎的索引的工作方式并不一样,也不是所有的存储引擎都支持所有类型的索引 索引类型 B-Tree 索引 存储引擎以不同的方式使用 B-Tree 索引 MyISAM:前缀压缩技术、数据的物理位置引用被...
高性能mysql(二) 高性能索引
索引是存储引擎用于快速找到记录的一种数据结构。 索引可以包含一个或多个列的值。如果索引包含多个列,那么列的顺序也很重要,因为mysql只能高效的使用索引的最左前缀列。 1.索引的优点 减少服务器需要扫描的数据量,帮助服务器避免排序和临时表,将随机io变为顺序io。 <em>高性能</em>索引策略包括:使用独立的列(所引列不是表达式的一部分),前缀索引和索引选择性,多列索引(不是对每个列都创建索引),选择合
高性能mysql:创建高性能的索引
本文系阅读《<em>高性能</em>MySQL》,Baron Schwartz等著一书中第五章 创建<em>高性能</em>的索引的笔记,索引是存储引擎用于快速找到记录的一种数据结构。索引对于良好的性能非常关键,尤其是当表中的数据量越来越大时,索引对性能的影响愈发重要。在数据量较小且负载较低时,不恰当的索引对性能的影响可能还不明显,但当数据量逐渐增大时,性能则会急剧下降。索引优化应该是对查询性能优化最有效的手段了。索引能够轻易将...
高性能MySQL——创建高性能的索引
索引是存储引擎用于快速查找记录的一种数据结构。索引优化是对查询性能优化最有效的手段。 1、索引的类型 在MySQL中,索引是在存储引擎层而不是服务器层实现的。所以没用统一的索引标准,不同存储引擎的索引工作方式并不相同。   B-Tree索引 B-Tree索引即使用B-Tree数据结构来存储数据。B-Tree通常意味着所有值都是按顺序存储的,并且每个叶子页到根的距离相同。存储引擎已不同的方式...
C. 高性能架构 --- 高性能负载均衡
C. <em>高性能</em>架构 --- <em>高性能</em>负载均衡 概述 不同类型的请求,对网络链路要求不一样,比如说 搜索请求的要求是:延迟 视频上传的要求是:吞吐量 单从硬件来看,关于优化资源的利用率,避免某个服务器负载过高 分类 DNS 负载均衡:DNS 是最简单也是最常见的负载均衡方式,一般用来实现地理级别的均衡。 优点 简单、成本低:负载均衡工作交给 DNS 服务器处理...
高性能前端3】高性能JavaScript
Posted on2012 年 10 月 10 日by元彦使用事件代理有时候我们会感觉到页面反应迟钝,这是因为DOM树元素中附加了过多的事件句柄并且些事件句病被频繁地触发。这就是为什么说使用事件代理是一种好方法了。如果你在一个div中有10个按钮,你只需要在div上附加一次事件句柄就可以了,而不用去为每一个按钮增加一个句柄。事件冒泡时你可以捕捉到事件并判断出是哪个事件发...
高性能 TCP Socket连接关闭释放集中调度类
/// /// Socket关闭调度类,此类提供了静态访问,但是此类可以实例化 /// /// /// Socket连接关闭类 /// 3个队列 /// 1.shotdown 关闭队列 /// 步骤1 /// 2.close 队列 间隔2秒 /// 步骤2 /// 3.dispose 队列 间隔1秒 //
利用IO完成端口实现高性能的UDP或TCP通信
在重构通信层的过程中,因为需要增加连接会话处理,
dotnet-beetleX是基于dotnetcore实现的轻量级高性能的TCP通讯组件
beetleX是基于dotnet core实现的轻量级<em>高性能</em>的TCP通讯组件,使用方便、性能高效和安全可靠是组件设计的出发点!开发人员可以在Beetlx组件的支持下快带地构建<em>高性能</em>的TCP通讯服务程序,在安全通讯方面只需要简单地设置一下SSL信息即可实现可靠安全的SSL服务。
rudp 高性能,可靠性传输UDP网络库(远胜TCP)
rudp <em>高性能</em>,可靠性传输UDP网络库(远胜TCP)
项目实战:基于 TCP 的局域网内高性能文件传输系统设计与实现
本项目开发基于 Red Hat Enterprise Linux(RHEL) 6.3 平台 ,通过本项目大家会深入理解下述内容: Socket 网络编程技术 基于TCP/IP 协议的网络编程技术 基于 TCP 的高并发 C/S 设计 IO 复用技术 MySQL API 编程技术 Shell 脚本编程技术 本项目使用 C 语言作为主要开发语言,Shell作为辅助开发语言,如果你想深入学习 Lin...
学习笔记 1.高性能编程 2.1.1 TCP/UDP协议
OSI网络七层模型 为了使不同计算机厂家的计算机能够互相通信,以便在更大的范围内简历计算机网络,有必要简历一个国际范围的网络体系结构标准。七层模型分别是: 物理层:使原始的数据比特流能在物理介质上传输。 数据链路层:通过校验、确认和反馈重发等手段,形成稳定的数据链路。 网络层:进行路由选择和流量控制。(IP协议) 传输层:提供可靠的端口到端口的数据传输服务。(TCP/UDP) 会话层:...
Linux网络编程 使用epoll实现一个高性能TCP Echo服务器
https://my.oschina.net/u/989096/blog/1189269 #零、前言 在Linux网络编程中,使用I/O复用来处理大规模并发连接是一种常见的方法,常用的有select、poll、epoll,本文主要讲述epoll的使用方法,并使用epoll实现一个<em>高性能</em>的Echo服务器,即把收到的数据原样返回给客户端。最后分析与select和poll的区别,并介绍一些常见问题
Linux下高性能网络编程中的几个TCP/IP选项
最近在新的平台上测试程序,以前一些没有注意到的问题都成为了性能瓶颈,通过设置一些TCP/IP选项能够解决一部分问题,当然根本的解决方法是重构代码,重新设计服务器框架。先列出几个TCP/IP选项:选项man 7 socket:SO_REUSEADDRSO_RECVBUF/SO_SNDBUFSO_KEEPALIVESO_LINGERman 7 <em>tcp</em>:TCP_CORKT
《Linux高性能服务器编程》学习笔记(一)--tcp/ip协议族
TCP/IP协议族 图解 封装 图解 分用 图解 以太网帧格式 图解 ARP协议结构详解 图解 ARP框架整理 图解 注:需要该.xmind文件,可自行下载ARP框架图.xmind DNS工作原理 ①输入域名后,现在本机对应的域名服务器中查找 ②域名服务器先查找自己的数据库中的数据,如果没有...
VirtualPC2007sp1汉化补丁下载
1.这是汉化补丁,请先安装原版程序再安装该汉化补丁! 2.汉化补丁安装完成后,请打开“Microsoft Virtual PC”主程序,依次 选择“File - Options - Language - Simplified Chinese”,之后点 击“OK”按钮,重新启动“Microsoft Virtual PC”主程序界面即为简 体中文。 3.如果需要VirtualPC2007sp1,请与我联系! 相关下载链接:[url=//download.csdn.net/download/zhang854429783/1972171?utm_source=bbsseo]//download.csdn.net/download/zhang854429783/1972171?utm_source=bbsseo[/url]
行列转换总结.pdf下载
行列转换包括以下六种情况: 1) 列转行 2) 行转列 3) 多列转换成字符串 4) 多行转换成字符串 5) 字符串转换成多列 6) 字符串转换成多行 相关下载链接:[url=//download.csdn.net/download/cn_hym/2174140?utm_source=bbsseo]//download.csdn.net/download/cn_hym/2174140?utm_source=bbsseo[/url]
vb tcp 客户端下载
运用VB 实现TCP 通讯,控件:WINSOCK. winsock.connect winsock.senddata winsock.protocol winsock.remotehost winsock.remoteport winsock.getdata 相关下载链接:[url=//download.csdn.net/download/xiawai7h11231/4334860?utm_source=bbsseo]//download.csdn.net/download/xiawai7h11231/4334860?utm_source=bbsseo[/url]
相关热词 c# gdi 占用内存 c#中遍历字典 c#控制台模拟dos c# 斜率 最小二乘法 c#进程延迟 c# mysql完整项目 c# grid 总行数 c# web浏览器插件 c# xml 生成xsd c# 操作sql视图
我们是很有底线的