• 开创生态文明新时代 绘出美丽中国新图景 2018-04-26
  • 贵州桐梓:困难群众打工差点错过“移民搬迁”之后 2018-04-26
  • 国乒男女队出征第54届世乒赛“盼天晴” 2018-04-26
  • “鲶鱼”初显 “自主三强”以合作应“开放”? 2018-04-25
  • 第二批慈善组织互联网募捐信息平台遴选结果公示 2018-04-25
  • 国乒男女队出征第54届世乒赛“盼天晴” 2018-04-24
  • 崔世安会见吴政隆 双方就推进苏澳合作深入交谈 2018-04-24
  • 音乐剧《朝暮有情人》演绎港穗两地三代情 2018-04-24
  • 3月70城房价环比涨幅扩大 2018-04-24
  • 国际油价4月19日涨跌互现 2018-04-23
  • 南平市人民防空办公室成立武夷新区人防办事处 2018-04-23
  • 劳动者合法权利也不可“任性”滥用 2018-04-22
  • SKT招募绝地求生队员 网友迫切看到faker与韦神对枪! 2018-04-22
  • 送别余光中:诗人虽远行,乡愁永流传 2018-04-22
  • 连超模肯豆都“爱不释脚”的穆勒鞋 你不了解一下?|穆勒鞋|肯豆|超模 2018-04-22
  • 跨年呈献:HP-Socket for Linux 1.0 震撼发布

    栏目: 软件资讯 发布于: 2017-12-15 16:00:02

    有免费的MySQL,为什么还要买? >>>??

    HP-Socket

    三年,三年,又三年,终于,终于,终于不用再等啦!就在今天,HP-Socket for Linux v1.0 震撼发布!还是一样的接口,一样的高效,一样的简便,一样的味道。

    HP-Socket for Linux提供了与Windows版本一致的API接口,实现代码则完全独立。HP-Socket for Linux使用了C++14标准的新特性,需要GCC 5.x以上版本的编译器来编译。发布包中提供了HP-Socket组件及示例Demo的Visual Studio项目工程,安装配置好Visual Studio的Visual C++ for Linux Development插件后即可自行编译。当然,你也可以自己编写Makefile文件来编译这些代码。
    注:HP-Socket for Linux的编译和运行需要2.6.32及以上版本的Linux内核。

    HP-Socket提供以下几类组件,详细内容请参考《HP-Socket网络通信框架开发指南》:

    • Server:基于IOCP / EPOLL通信模型,并结合缓存池、私有堆等技术实现高效内存管理,支持超大规模、高并发通信场景。

    • Agent:Agent组件实质上是Multi-Client组件,与Server组件采用相同的技术架构。一个Agent组件对象可同时建立和高效处理大规模Socket连接。

    • Client:基于Event Select / POLL通信模型,每个组件对象创建一个通信线程并管理一个Socket连接,适用于小规??突Ф顺【?。

    安装指引

    $?sudo?./install.sh?-h
    Usage:?install.sh?[...O.P.T.I.O.N.S...]
    -----------------+------------------------------------------------
    ??-p|--prefix????:?install/uninstall?path?(default:?/usr/local)
    ??-l|--libdir????:?lib?dir?(default:?x86?->?lib,?x64?->?lib64)
    ??-d|--with-demo?:?install?demos?or?not?(default:?true)
    ??-u|--uninstall?:?execute?uninstall?operation?from?install?path
    ??-v|--version???:?print?installing?hp-socket?version
    ??-h|--help??????:?print?this?usage?message
    -----------------+------------------------------------------------

    工作流程

    1. 创建监听器对象

    2. 创建组件对象(并绑定监听器)

    3. 启动组件

    4. 连接远程主机(仅用于Agent组件)

    5. 处理通信事件(OnConnect/OnReceive/OnClose?......)

    6. 停止组件(可选,第7步销毁组件对象前会先停止组件)

    7. 销毁组件对象

    8. 销毁监听器对象

    示例代码

    • C++ 示例

      #include?<hpsocket/HPSocket.h>
      
      /*?Listener?Class?*/
      class?CListenerImpl?:?public?CTcpPullServerListener
      {
      
      public:
      	//?5.?process?network?events
      	virtual?EnHandleResult?OnPrepareListen(ITcpServer*?pSender,?SOCKET?soListen);
      	virtual?EnHandleResult?OnAccept(ITcpServer*?pSender,?CONNID?dwConnID,?UINT_PTR?soClient);
      	virtual?EnHandleResult?OnHandShake(ITcpServer*?pSender,?CONNID?dwConnID);
      	virtual?EnHandleResult?OnReceive(ITcpServer*?pSender,?CONNID?dwConnID,?int?iLength);
      	virtual?EnHandleResult?OnSend(ITcpServer*?pSender,?CONNID?dwConnID,?const?BYTE*?pData,?int?iLength);
      	virtual?EnHandleResult?OnClose(ITcpServer*?pSender,?CONNID?dwConnID,?EnSocketOperation?enOperation,?int?iErrorCode);
      	virtual?EnHandleResult?OnShutdown(ITcpServer*?pSender);
      };
      
      int?main(int?argc,?char*?const?argv[])
      {
      	//?1.?Create?listener?object
      	CListenerImpl?s_listener;
      	//?2.?Create?component?object?(and?binding?with?listener?object)
      	CTcpPullServerPtr?s_pserver(&s_listener);
      	
      	//?3.?Start?component?object
      	if(!s_pserver->Start("0.0.0.0",?5555))
      		exit(1);
      	
      	/*?wait?for?exit?*/
      	//?...?...?
      	
      	//?6.?(optional)?Stop?component?object
      	s_pserver->Stop()
      
      	return?0;
      	
      	//?7.?Destroy?component?object?automatically
      	//?8.?Destroy?listener?object?automatically
      }
    • C 示例

      #include?<hpsocket/HPSocket4C.h>
      
      //?5.?process?network?events
      EnHandleResult?__stdcall?OnConnect(HP_Agent?pSender,?HP_CONNID?dwConnID);
      EnHandleResult?__stdcall?OnReceive(HP_Agent?pSender,?HP_CONNID?dwConnID,?int?iLength);
      EnHandleResult?__stdcall?OnSend(HP_Agent?pSender,?HP_CONNID?dwConnID,?const?BYTE*?pData,?int?iLength);
      EnHandleResult?__stdcall?OnClose(HP_Agent?pSender,?HP_CONNID?dwConnID,?En_HP_SocketOperation?enOperation,?int?iErrorCode);
      EnHandleResult?__stdcall?OnShutdown(HP_Agent?pSender);
      
      int?main(int?argc,?char*?const?argv[])
      {
      	HP_TcpPullAgentListener?s_listener;
      	HP_TcpPullAgent?s_agent;
      
      	//?1.?Create?listener?object
      	s_listener?=?::Create_HP_TcpPullAgentListener();
      	//?2.?Create?component?object?(and?binding?with?listener?object)
      	s_agent????=?::Create_HP_TcpPullAgent(s_listener);
      	
      	/*?Set?listener?callbacks?*/
      	::HP_Set_FN_Agent_OnConnect(s_listener,?OnConnect);
      	::HP_Set_FN_Agent_OnSend(s_listener,?OnSend);
      	::HP_Set_FN_Agent_OnPullReceive(s_listener,?OnReceive);
      	::HP_Set_FN_Agent_OnClose(s_listener,?OnClose);
      	::HP_Set_FN_Agent_OnShutdown(s_listener,?OnShutdown);
      	
      	//?3.?Start?component?object
      	if(::HP_Agent_HasStarted(s_agent))
      		exit(1);
      	
      	//?4.?Connect?to?dest?host
      	::HP_Agent_Connect(s_agent,?"remote.host.1",?REMOTE_PORT_1,?nullptr);
      	::HP_Agent_Connect(s_agent,?"remote.host.2",?REMOTE_PORT_2,?nullptr);
      	::HP_Agent_Connect(s_agent,?"remote.host.3",?REMOTE_PORT_3,?nullptr);
      	
      	/*?wait?for?exit?*/
      	//?...?...?
      	
      	//?6.?(optional)?Stop?component?object
      	::HP_Agent_Stop(s_agent)
      
      	//?7.?Destroy?component?object
      	::Destroy_HP_TcpPullAgent(s_agent);
      	//?8.?Destroy?listener?object
      	::Destroy_HP_TcpPullAgentListener(s_listener);
      	
      	return?0;
      }

    组件列表

    HP-Socket for Linux v1.0目前发布了一系列基础组件,后续版本将会陆续发布SSL组件和HTTP组件。


    【声明】文章转载自:开源中国社区 [http://www.rocksun.cn]

    本站文章除注明转载外,均为本站原创或编译?;队魏涡问降淖?,但请务必注明出处。
    转载请注明:文章转载自 七星彩票平台
    本文标题:跨年呈献:HP-Socket for Linux 1.0 震撼发布
    IT技术书籍推荐:
    细说PHP(第2版)
    细说PHP(第2版)
    高洛峰 (作者)
    《细说PHP(第2版)》内容简介:PHP是开发Web应用系统最理想的工具,易于使用、功能强大、成本低廉、高安全性、开发速度快且执行灵活。全书以实用为目标设计,包含PHP开发最主流的各项技术,对每一个知识点都进行了深入详细的讲解,并附有大量的实例代码,图文并茂。系统地介绍了PHP的相关技术及其在实际Web开发中的应用。 《细说PHP(第2版)》共六个部分,分为30个章节,每一章都是PHP独立知识点的总结。内容涵盖了动态网站开发的前台技术(HTML+CSS)、PHP编程语言的语法、PHP的常用功能??楹褪涤眉记?、MySQL数据库的设计与应用、PHP 面向对象的程序设计思想、数据库抽象层PDO、Smarty模板技术、Web开发的设计模式、自定义框架BroPHP、Web项目开发整个流程等目前PHP开发中最主流的技术。每一章中都有大量的实用示例,以及详尽的注释,加速读者的理解和学习,也为每章的技术点设置了大量的自测试题。最后以一个比较完整的、采用面向对象思想,以及通过MVC模式设计,并结合Smarty模板,基于BroPHP框架的CMS系统为案例,详细介绍了Web系统开发从设计到部署的各个细节,便于更好地进行开发实践。