📄 main.c
字号:
#include "gprs_dll.h"
#include "signal.h"
#include "dlfcn.h"
#define NULL 0
int i_packamount;
void *sofile;
int (* start_gprs)(CBFUNC *,int,char *,int,int);
int (* do_read)(data_record *,char *,int);
int (* send_data_usr)(char *,char *,int,char *);
void data_process(data_record *pdr,char *mess)
{
switch (pdr->m_data_type)
{
case 0x01:
printf("DTU login -- %s\n",pdr->m_userid);
break;
case 0x02:
printf("DTU logout -- %s\n",pdr->m_userid);
break;
case 0x09:
i_packamount++;
printf("[ %d ] %s - %d - %s",i_packamount,pdr->m_userid,pdr->m_data_len,asctime(localtime(&pdr->m_recv_date)));
printf("Recieve From DTU:%s\n",pdr->m_data_buf);
break;
default:
NULL;
}
}
main()
{
char mess[512];
data_record dr;
i_packamount=0;
sofile=dlopen("/home/hsxie/temp/gprs_dll.so",RTLD_LAZY);
printf("gprs_dll.so open successfully\n");
start_gprs=dlsym(sofile,"start_gprs_server");
do_read=dlsym(sofile,"do_read_proc");
send_data_usr=dlsym(sofile,"do_send_user_data");
(*start_gprs)(NULL,5002,mess,20,10);
printf("%s\n",mess);
for (;;)
{
if (0==((*do_read)(&dr,mess,false)))
{
switch (dr.m_data_type)
{
case 0x01:
printf("DTU login -- %s\n",dr.m_userid);
break;
case 0x02:
printf("DTU logout -- %s\n",dr.m_userid);
break;
case 0x09:
i_packamount++;
printf("[ %d ] %s - %d - %s",i_packamount,dr.m_userid,dr.m_data_len,asctime(localtime(&dr.m_recv_date)));
printf("Recieve From DTU:%s\n",dr.m_data_buf);
(* send_data_usr)(dr.m_userid,dr.m_data_buf,dr.m_data_len,NULL);
break;
default:
NULL;
}
}
//sleep(1);
}
printf("==========programe terminated\n==========");
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -