libevent编译(cmake)及测试

前言
一个跨平台网络库
只所以写个,为了以后忘了,这里作为备份吧,都搭好多次了,换个机子搭一次

1:环境
分别在 ubuntu22 与 win10上编译下
libevent(2.1.12) download:https://libevent.org/
openssl(3.4.0) https://openssl-library.org/source/

2:ubuntu22
安装openssl
sudo apt-update
sudo apt-get install libevent-dev libssl-dev
其他安装安装说明进行就可以了,linux下比较简单

CMake (Unix)

 $ mkdir build && cd build
 $ cmake ..     # Default to Unix Makefiles.
 $ make
 $ make verify  # (optional)

make install 一般 我不执行,就放到这里就可以了,不想安装太到其他地方去
编译完后的
在这里插入图片描述
测试 代码 2015年写的,不过拿来重新编译下,跑下
main.cpp

// libeventtestrobot.cpp : ¶šÒå¿ØÖÆÌšÓŠÓóÌÐòµÄÈë¿Úµã¡£
//

#include "stdafx.h"
#include "robotlogic.h"
bool  g_bJumpMap = false;
int main(int argc, char* argv[])
{
   
	UINT32 u32GepMs = 300;
	CHAR szIp[24] = "192.168.1.105";
	INT32 n32Port = 4467;
	INT32 n32Thread = 1;
	INT32 n32RoleNum = 1;
	switch (argc)
	{
   
	case 7:
	{
   
		g_bJumpMap = (bool)atoi(argv[6]);
	}
	case 6:
	{
   
		u32GepMs = atoi(argv[5]);
	}
	case 5:
	{
   
		n32RoleNum = atoi(argv[4]);
	}
	case 4:
	{
   
		n32Thread = atoi(argv[3]);
	}
	case 3:
	{
   
		n32Port = atoi(argv[2]);
	}
	case 2:
	{
   
		strncpy(szIp, argv[1], sizeof(szIp) - 1);
	}
	break;
	}

	CRobotLogic* pLogic = CRobotLogic::GetInstance();

	if (pLogic->Init(szIp, n32Port, n32Thread, n32RoleNum, u32GepMs))
	{
   
		pLogic->Run();
		pLogic->Fini();
	}
	int nQuit;
	scanf("%d", &nQuit);
    return 0;
}

IoThread.cpp

#include "stdafx.h"
#include "IoThread.h"
#include "logicThread.h"
#include "gsConnect.h"
#include "MsgInterface.h"
#include "MsgParser.h"

static void listen_thread_cb(struct evconnlistener *listener, 
	evutil_socket_t fd, struct sockaddr *addr, int socklen, void *args)
{
   
	CNetWorkIoThread* pThread = (CNetWorkIoThread*)args;
	if ( pThread )
	{
   
		pThread->onAccept(fd,addr,socklen);
	}
}

void CNetWorkIoThread::onAccept(evutil_socket_t fd, struct sockaddr *addr, int socklen)
{
   
	for(UINT8 i=0;i<10;i++)
	{
   
// 		if(m_ArrayGs[i] && !m_ArrayGs[i]->isconnected())
// 		{
   
// 			printf("accept connect index=%d \n",i);
// 			m_ArrayGs[i]->setConnect(fd,addr,socklen);
// 			m_ArrayGs[i]->setGsID(i+1);
// 			m_ArrayGs[i]->setNetWorkIoThread(this);
// 			m_ArrayGs[i]->bindSocketBuffer(get_evbase());
// 			break;
// 		}
	}
}

<
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值