HP-Socket通信框架使用入门

  • Post author:
  • Post category:其他


官方下载地址:

https://github.com/ldcsaa/HP-Socket

简单介绍下官方提供的内容:

—-DOC:目录下是官方提供的文档,包括


Development Guide



—-Linux:Linux的工程



—-Windows:Windows的工程,我在Windows开发的详细介绍这个。



—-Bin:编译好的dll和lib



—-Demo:官方提供的使用示例



—-Project:项目的VS工程



—-Include:使用HP-Socket库需要的头文件



—-Src是核心功能源代码,Project只是工程,源代码在这里



—-Common是通用功能源代码


Demo里提供的例子工程包含了部分HP-Socket源代码,不能算直接使用编译好的dll和lib。这里讲如何直接使用Include里的头文件和Bin里的dll和lib来开发。


其实使用这个库很简单。过程大致是:


HP-Socket有两种开发库接口,C和C++的。我这里使用的是C++的。


提示:记得设置工程为使用多字节字符集,使用unicode字符集会创建socket失败,和库的实现有关。


首先当然是包含三个头文件:


#include”HPSocket.h”

#include”SocketInterface.h”

#include”HPTypeDef.h


HP-Socket有一个Listener的概念,监听者是一个类,要求实现特定的纯虚函数用来处理通信过程中的事件,包括收到的数据。如TCP客户端

Listener

需要定义如下函数:


virtual EnHandleResult OnSend(ITcpClient* pSender, CONNID dwConnID, const BYTE* pData, int iLength);



virtual EnHandleResult OnReceive(ITcpClient* pSender, CONNID dwConnID, const BYTE* pData, int iLength);

virtual EnHandleResult OnClose(ITcpClient* pSender, CONNID dwConnID, EnSocketOperation enOperation, int iErrorCode);


virtual EnHandleResult OnShutdown(ITcpClient* pSender);


然后再创建服务端或者客户端对象:


CTcpClientPtr s_psever(&listener);


进而可以使用通信对象的Start函数绑定端口或者链接服务端:


s_psever->Start(“127.0.0.1″, 5555,1,”0.0.0.0”)


后续就可以进一步使用Send的函数实现自己的工。


记得要加入lib:


#pragma comment(lib,”HPSocket_D.lib”)


并将相应的dll放在生成的exe同一目录下。



Listener

内定义的Listen函数会在特定通信事件完成后被调用,如建立连接,接收到客户连接,发生数据,接收数据,关闭连接等。在官方提供的


Development Guide


内会有流程图表明事件何时发生。如:框架详述—-Client组件—-工作流程章节。


示例工程下载:


https://download.csdn.net/download/shadow20080578/10311040


https://download.csdn.net/download/shadow20080578/10311047

欢迎关注我的微博:大雄_RE。专注软件逆向,分享最新的好文章、好工具,追踪行业大佬的研究成果。



版权声明:本文为shadow20080578原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。