回调函数的使用方法

1、使用回调函数
1.1声明回调函数
typedef void(*REC_RECV_REPORT_CALLBACK)(int flag , char *data);//flag: 0 socket连接断开 , 1 socket连接  ; *data 客户端发给指定服务端的数据

1.2 创建实例
REC_RECV_REPORT_CALLBACK m_sockCallBack;
1.3注册服务端的回调函数
用于被其他进程调用,详情见13.5
(1)xxx.h
int register_callback(REC_RECV_REPORT_CALLBACK callBackFun);
(2)xxx.cpp
//注册回调函数
int register_callback(REC_RECV_REPORT_CALLBACK callBackFun)
{
int flag = 0;
if(callBackFun)
{
memcpy(&m_sockCallBack,&callBackFun,sizeof(callBackFun));
flag = 1;
}
return flag;
}

1.4 调用回调函数
//调用回调函数
if(m_sockCallBack)
{
m_sockCallBac(socket_connect,socketId_recv_buf);
}
else
{
printf(“The m_sockCallBack is NULL \n”);
}

1.5 调用注册回调函数
(1)定义被回调的函数
xxx.h:
static void myCallbackTest(int serSocketId,int cliSocketId,int val,char *str);
说明:必须使用static申明该函数

xxx.cpp:
void xxx::myCallbackTest(int val,char *str)
{

}

(2)调用注册回调函数
void xxx::init()
{
register_callback(myCallbackTest);
}

说明:以上1.1-1.4是由进程1调用,1.5由进程2调用

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值