[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"project-6474":3},{"id":4,"name":5,"fullName":6,"owner":7,"repo":5,"description":8,"homepage":9,"htmlUrl":10,"language":11,"languages":10,"totalLinesOfCode":10,"stars":12,"forks":13,"watchers":14,"openIssues":15,"contributorsCount":16,"subscribersCount":16,"size":16,"stars1d":16,"stars7d":17,"stars30d":18,"stars90d":16,"forks30d":16,"starsTrendScore":16,"compositeScore":19,"rankGlobal":10,"rankLanguage":10,"license":20,"archived":21,"fork":21,"defaultBranch":22,"hasWiki":23,"hasPages":23,"topics":24,"createdAt":10,"pushedAt":10,"updatedAt":45,"readmeContent":46,"aiSummary":47,"trendingCount":16,"starSnapshotCount":16,"syncStatus":17,"lastSyncTime":48,"discoverSource":49},6474,"HP-Socket","ldcsaa\u002FHP-Socket","ldcsaa","High Performance TCP\u002FUDP\u002FHTTP Communication Component","https:\u002F\u002Fwww.oschina.net\u002Fp\u002Fhp-socket",null,"C",6130,1797,503,28,0,2,9,40.76,"Other",false,"dev",true,[25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44],"android","c","cpp","cross-platform","epoll","hpsocket","http","https","iocp","linux","ndk","netcore","network","networking","socket","ssl","tcp","udp","websocket","windows","2026-06-12 02:01:25","![HP-Socket](Doc\u002FHP-Socket%20Logo.png \"HP-Socket\")\n---\n*High Performance Network Framework*\n## Description\n- ***Server*** Based on IOCP\u002FEPOLL communication model, combined with technology of memory pool, private heap etc., efficient memory management is implemented to support large scale and high concurrent communication scenarios.\n- ***Agent*** The Agent component is essentially a Multi-Client component that uses the same technical architecture as the Server component. An Agent component object can create and efficiently handle large-scale Socket connections at the same time.\n- ***Client*** Based on Event-Select\u002FPOLL communication model, each component object creates a communication thread and manages a Socket connection. Client components are suitable for small-scale client scenarios.\n## Document\n- HP-Socket Development Guide \n[[pdf]](Doc\u002FHP-Socket%20Development%20Guide.pdf)\n- HP-Socket Class Diagram \n[[uml]](Doc\u002FHP-Socket%20Class%20Diagram.uml)\n- HP-Socket Class Diagram \n[[jpg]](Doc\u002FHP-Socket%20Class%20Diagram.jpg)\n- HP-Socket SSL Class Diagram \n[[jpg]](Doc\u002FHP-Socket%20SSL%20Class%20Diagram.jpg)\n- HP-Socket HTTP Class Diagram \n[[jpg]](Doc\u002FHP-Socket%20HTTP%20Class%20Diagram.jpg)\n## Workflow\n1. Create listener object\n2. Create component object (and binding with listener object)\n3. Start component object\n4. Connect to dest host (for *Agent* Component only)\n5. process network events (*OnConnect\u002FOnReceive\u002FOnClose* etc.)\n6. Stop component object (optional: component object will be stopped before destroy in step 7)\n7. Destroy component object\n8. Destroy listener object\n\n![Agent Workflow](Doc\u002FHP-Socket-Agent-Demo.jpg \"Agent-Workflow\")\n## Example\n- ***C++ Example***\n\n``` C++\n#include \u003Chpsocket\u002FHPSocket.h>\n\n\u002F* Listener Class *\u002F\nclass CListenerImpl : public CTcpPullServerListener\n{\n\npublic:\n\t\u002F\u002F 5. process network events\n\tvirtual EnHandleResult OnPrepareListen(ITcpServer* pSender, SOCKET soListen);\n\tvirtual EnHandleResult OnAccept(ITcpServer* pSender, CONNID dwConnID, UINT_PTR soClient);\n\tvirtual EnHandleResult OnHandShake(ITcpServer* pSender, CONNID dwConnID);\n\tvirtual EnHandleResult OnReceive(ITcpServer* pSender, CONNID dwConnID, int iLength);\n\tvirtual EnHandleResult OnSend(ITcpServer* pSender, CONNID dwConnID, const BYTE* pData, int iLength);\n\tvirtual EnHandleResult OnClose(ITcpServer* pSender, CONNID dwConnID, EnSocketOperation enOperation, int iErrorCode);\n\tvirtual EnHandleResult OnShutdown(ITcpServer* pSender);\n};\n\nint main(int argc, char* const argv[])\n{\n\t\u002F\u002F 1. Create listener object\n\tCListenerImpl s_listener;\n\t\u002F\u002F 2. Create component object (and binding with listener object)\n\tCTcpPullServerPtr s_pserver(&s_listener);\n\t\n\t\u002F\u002F 3. Start component object\n\tif(!s_pserver->Start(\"0.0.0.0\", 5555))\n\t\texit(1);\n\t\n\t\u002F* wait for exit *\u002F\n\t\u002F\u002F ... ... \n\t\n\t\u002F\u002F 6. (optional) Stop component object\n\ts_pserver->Stop();\n\n\treturn 0;\n\t\n\t\u002F\u002F 7. Destroy component object automatically\n\t\u002F\u002F 8. Destroy listener object automatically\n}\n```\n\n- ***C Example***\n\n``` C\n#include \u003Chpsocket\u002FHPSocket4C.h>\n\n\u002F\u002F 5. process network events\nEnHandleResult __HP_CALL OnConnect(HP_Agent pSender, HP_CONNID dwConnID);\nEnHandleResult __HP_CALL OnReceive(HP_Agent pSender, HP_CONNID dwConnID, int iLength);\nEnHandleResult __HP_CALL OnSend(HP_Agent pSender, HP_CONNID dwConnID, const BYTE* pData, int iLength);\nEnHandleResult __HP_CALL OnClose(HP_Agent pSender, HP_CONNID dwConnID, En_HP_SocketOperation enOperation, int iErrorCode);\nEnHandleResult __HP_CALL OnShutdown(HP_Agent pSender);\n\nint main(int argc, char* const argv[])\n{\n\tHP_TcpPullAgentListener s_listener;\n\tHP_TcpPullAgent s_agent;\n\n\t\u002F\u002F 1. Create listener object\n\ts_listener = ::Create_HP_TcpPullAgentListener();\n\t\u002F\u002F 2. Create component object (and binding with listener object)\n\ts_agent    = ::Create_HP_TcpPullAgent(s_listener);\n\t\n\t\u002F* Set listener callbacks *\u002F\n\t::HP_Set_FN_Agent_OnConnect(s_listener, OnConnect);\n\t::HP_Set_FN_Agent_OnSend(s_listener, OnSend);\n\t::HP_Set_FN_Agent_OnPullReceive(s_listener, OnReceive);\n\t::HP_Set_FN_Agent_OnClose(s_listener, OnClose);\n\t::HP_Set_FN_Agent_OnShutdown(s_listener, OnShutdown);\n\t\n\t\u002F\u002F 3. Start component object\n\tif(!::HP_Agent_Start(s_agent, \"0.0.0.0\", TRUE))\n\t\texit(1);\n\t\n\t\u002F\u002F 4. Connect to dest host\n\t::HP_Agent_Connect(s_agent, REMOTE_HOST_1, REMOTE_PORT_1, nullptr);\n\t::HP_Agent_Connect(s_agent, REMOTE_HOST_2, REMOTE_PORT_2, nullptr);\n\t::HP_Agent_Connect(s_agent, REMOTE_HOST_3, REMOTE_PORT_3, nullptr);\n\t\n\t\u002F* wait for exit *\u002F\n\t\u002F\u002F ... ... \n\t\n\t\u002F\u002F 6. (optional) Stop component object\n\t::HP_Agent_Stop(s_agent);\n\n\t\u002F\u002F 7. Destroy component object\n\t::Destroy_HP_TcpPullAgent(s_agent);\n\t\u002F\u002F 8. Destroy listener object\n\t::Destroy_HP_TcpPullAgentListener(s_listener);\n\t\n\treturn 0;\n}\n```\n\n## Component List\n- ***Basic Components***\n\n![Basic Component](Doc\u002FBasic%20Component%20-%20mini.jpg \"Basic Component\")\n\n- ***SSL Components***\n\n![SSL Component](Doc\u002FSSL%20Component%20-%20mini.jpg \"SSL Component\")\n\n- ***HTTP Components***\n\n![HTTP Component](Doc\u002FHTTP%20Component%20-%20mini.jpg \"HTTP Component\")\n\n## Reference Projects\n\n- *[mimalloc](https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002Fmimalloc)*\n- *[jemalloc](https:\u002F\u002Fgithub.com\u002Fjemalloc\u002Fjemalloc)*\n- *[openssl](https:\u002F\u002Fgithub.com\u002Fopenssl\u002Fopenssl)*\n- *[llhttp](https:\u002F\u002Fgithub.com\u002Fnodejs\u002Fllhttp)*\n- *[zlib](https:\u002F\u002Fgithub.com\u002Fmadler\u002Fzlib)*\n- *[brotli](https:\u002F\u002Fgithub.com\u002Fgoogle\u002Fbrotli)*\n- *[kcp](https:\u002F\u002Fgithub.com\u002Fskywind3000\u002Fkcp)*\n\n## Extension Projects\n\n- *[HP-Socket for MacOS](https:\u002F\u002Fgitee.com\u002Fxin_chong\u002FHP-Socket-for-macOS)*\n- *[HP-Socket for .Net](https:\u002F\u002Fgitee.com\u002Fint2e\u002FHPSocket.Net)*\n\n## Technical Exchange Groups\n\n- *[QQ Group - 1](https:\u002F\u002Fjq.qq.com\u002F?_wv=1027&k=3UAbrhTG)*\n- *[QQ Group - 2](https:\u002F\u002Fjq.qq.com\u002F?_wv=1027&k=uYBpc6bG)*","HP-Socket 是一个高性能的TCP\u002FUDP\u002FHTTP通信组件。它基于IOCP（Windows）和EPOLL（Linux）通信模型，结合内存池、私有堆等技术，实现了高效的内存管理，能够支持大规模高并发通信场景。该项目提供了服务器、代理和客户端三种组件，分别适用于不同规模的应用需求：服务器组件适合处理大量并发连接；代理组件可以同时创建并高效管理大规模Socket连接；而客户端组件则适用于小规模客户端场景。此外，HP-Socket还支持SSL加密传输，确保数据安全，并且具有良好的跨平台兼容性，适用于Android、Linux及Windows等多种操作系统环境下的网络应用开发。","2026-06-11 03:07:09","top_language"]