HP-Socket通信框架使用入门

官方下载地址: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。专注软件逆向,分享最新的好文章、好工具,追踪行业大佬的研究成果。

  • 1
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 4
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值