最近在学习libevent,写了一些测试的例子,最开始是用共享内存实现的,后来改成了多线程。而且很多细节没有考虑。先存下档,后面再改(不改了)
main.cpp
#include "stdafx.h"
#include<stdio.h>
#include<string.h>
#include<errno.h>
#include<event.h>
#include<event2/bufferevent.h>
#include "ThreadPool.h"
#include "event2/thread.h"
#include "EventWork.h"
#include <vector>
void accept_cb(int fd, short events, void* arg);
int tcp_server_init(int port, int listen_num);
int THREAD_NUM = 10;
int g_count = 0;
int last_thread = 0;
EventWork* g_works;
int main(int argc, char** argv)
{
//加载套接字库
WSADATA wsaData;
int iRet = 0;
iRet = WSAStartup(MAKEWORD(2, 2), &wsaData);
if (iRet != 0)
{
return -1;
}
if (2 != LOBYTE(wsaData.wVersion) || 2 != HIBYTE(wsaData.wVersion))
{
WSACleanup();
return -1;
}
int listener = tcp_server_init(9999, 10000000);
if (listener == -1)
{
return -1;
}
evthread_use_windows_threads();
g_works = new EventWork[T

本文分享了一次使用libevent库结合多线程技术进行网络编程的实践过程。作者最初尝试通过共享内存方式实现,随后转向多线程方案,并记录了测试代码的主要流程与关键函数,包括监听服务器初始化、客户端连接事件处理及任务分发等。
最低0.47元/天 解锁文章
2571

被折叠的 条评论
为什么被折叠?



