实例介绍
windows平台下对于服务器高并发的网络模型选型中,使用libevent是个不错的选择。 本文的背景基于:国内博客对于libevent大多介绍Linux实现,大多是C语言的实现,Windows平台下C++相对较少或者较旧。 本文针对libevent从服务端、客户端两个角度实现了封装类,真正做到,我们在使用封装类时候,只需要关注业务逻辑的处理,不需要关注socket的通信的细节。
【实例截图】
【核心代码】
74f223d2-d4b9-4740-a284-e5e198017f1d
└── libevent_demo
├── readme.txt
├── simLibeventClient
│ ├── Debug
│ │ ├── simLibeventClient.exe
│ │ ├── simLibeventClient.exe.manifest
│ │ ├── simLibeventClient.ilk
│ │ └── simLibeventClient.pdb
│ ├── ipch
│ │ └── simlibeventclient-b3a71e0f
│ │ └── simlibeventclient-b980e3ad.ipch
│ ├── simLibeventClient
│ │ ├── Debug
│ │ │ ├── cl.command.1.tlog
│ │ │ ├── CL.read.1.tlog
│ │ │ ├── CL.write.1.tlog
│ │ │ ├── link.command.1.tlog
│ │ │ ├── link.read.1.tlog
│ │ │ ├── link.write.1.tlog
│ │ │ ├── mt.command.1.tlog
│ │ │ ├── mt.read.1.tlog
│ │ │ ├── mt.write.1.tlog
│ │ │ ├── simLibeventClient.Build.CppClean.log
│ │ │ ├── simLibeventClient.exe.intermediate.manifest
│ │ │ ├── simLibeventClient.lastbuildstate
│ │ │ ├── simLibeventClient.log
│ │ │ ├── simLibeventClient.obj
│ │ │ ├── simLibeventClient.pch
│ │ │ ├── simLibeventClient.vcxprojResolveAssemblyReference.cache
│ │ │ ├── simLibeventClient.write.1.tlog
│ │ │ ├── stdafx.obj
│ │ │ ├── vc100.idb
│ │ │ ├── vc100.pdb
│ │ │ └── yuLibEventClient.obj
│ │ ├── include
│ │ │ └── event2
│ │ │ ├── buffer_compat.h
│ │ │ ├── bufferevent_compat.h
│ │ │ ├── bufferevent.h
│ │ │ ├── bufferevent_ssl.h
│ │ │ ├── bufferevent_struct.h
│ │ │ ├── buffer.h
│ │ │ ├── dns_compat.h
│ │ │ ├── dns.h
│ │ │ ├── dns_struct.h
│ │ │ ├── event_compat.h
│ │ │ ├── event-config.h
│ │ │ ├── event.h
│ │ │ ├── event_struct.h
│ │ │ ├── http_compat.h
│ │ │ ├── http.h
│ │ │ ├── http_struct.h
│ │ │ ├── keyvalq_struct.h
│ │ │ ├── listener.h
│ │ │ ├── rpc_compat.h
│ │ │ ├── rpc.h
│ │ │ ├── rpc_struct.h
│ │ │ ├── tag_compat.h
│ │ │ ├── tag.h
│ │ │ ├── thread.h
│ │ │ └── util.h
│ │ ├── lib
│ │ │ └── libevent
│ │ │ ├── libevent_core.lib
│ │ │ ├── libevent_extras.lib
│ │ │ └── libevent.lib
│ │ ├── ReadMe.txt
│ │ ├── simLibeventClient.cpp
│ │ ├── simLibeventClient.vcxproj
│ │ ├── simLibeventClient.vcxproj.filters
│ │ ├── simLibeventClient.vcxproj.user
│ │ ├── src
│ │ │ ├── yuLibEventClient.cpp
│ │ │ └── yuLibEventClient.h
│ │ ├── stdafx.cpp
│ │ ├── stdafx.h
│ │ └── targetver.h
│ ├── simLibeventClient.sdf
│ ├── simLibeventClient.sln
│ └── simLibeventClient.suo
└── simLibeventServer
├── Debug
│ ├── simLibeventServer.exe
│ ├── simLibeventServer.exe.manifest
│ ├── simLibeventServer.ilk
│ └── simLibeventServer.pdb
├── ipch
│ └── simlibeventserver-aab32757
│ └── simlibeventserver-208ec4c5.ipch
├── simLibeventServer
│ ├── Debug
│ │ ├── cl.command.1.tlog
│ │ ├── CL.read.1.tlog
│ │ ├── CL.write.1.tlog
│ │ ├── link.command.1.tlog
│ │ ├── link.read.1.tlog
│ │ ├── link.write.1.tlog
│ │ ├── mt.command.1.tlog
│ │ ├── mt.read.1.tlog
│ │ ├── mt.write.1.tlog
│ │ ├── simLibeventServer.Build.CppClean.log
│ │ ├── simLibeventServer.exe.intermediate.manifest
│ │ ├── simLibeventServer.lastbuildstate
│ │ ├── simLibeventServer.log
│ │ ├── simLibeventServer.obj
│ │ ├── simLibeventServer.pch
│ │ ├── simLibeventServer.vcxprojResolveAssemblyReference.cache
│ │ ├── simLibeventServer.write.1.tlog
│ │ ├── stdafx.obj
│ │ ├── vc100.idb
│ │ ├── vc100.pdb
│ │ └── YuLibeventServer.obj
│ ├── include
│ │ └── event2
│ │ ├── buffer_compat.h
│ │ ├── bufferevent_compat.h
│ │ ├── bufferevent.h
│ │ ├── bufferevent_ssl.h
│ │ ├── bufferevent_struct.h
│ │ ├── buffer.h
│ │ ├── dns_compat.h
│ │ ├── dns.h
│ │ ├── dns_struct.h
│ │ ├── event_compat.h
│ │ ├── event-config.h
│ │ ├── event.h
│ │ ├── event_struct.h
│ │ ├── http_compat.h
│ │ ├── http.h
│ │ ├── http_struct.h
│ │ ├── keyvalq_struct.h
│ │ ├── listener.h
│ │ ├── rpc_compat.h
│ │ ├── rpc.h
│ │ ├── rpc_struct.h
│ │ ├── tag_compat.h
│ │ ├── tag.h
│ │ ├── thread.h
│ │ └── util.h
│ ├── lib
│ │ └── libevent
│ │ ├── libevent_core.lib
│ │ ├── libevent_extras.lib
│ │ └── libevent.lib
│ ├── ReadMe.txt
│ ├── simLibeventServer.cpp
│ ├── simLibeventServer.vcxproj
│ ├── simLibeventServer.vcxproj.filters
│ ├── simLibeventServer.vcxproj.user
│ ├── src
│ │ ├── YuLibeventServer.cpp
│ │ └── YuLibeventServer.h
│ ├── stdafx.cpp
│ ├── stdafx.h
│ └── targetver.h
├── simLibeventServer.sdf
├── simLibeventServer.sln
└── simLibeventServer.suo
23 directories, 135 files
标签:
小贴士
感谢您为本站写下的评论,您的评论对其它用户来说具有重要的参考价值,所以请认真填写。
- 类似“顶”、“沙发”之类没有营养的文字,对勤劳贡献的楼主来说是令人沮丧的反馈信息。
- 相信您也不想看到一排文字/表情墙,所以请不要反馈意义不大的重复字符,也请尽量不要纯表情的回复。
- 提问之前请再仔细看一遍楼主的说明,或许是您遗漏了。
- 请勿到处挖坑绊人、招贴广告。既占空间让人厌烦,又没人会搭理,于人于己都无利。
关于好例子网
本站旨在为广大IT学习爱好者提供一个非营利性互相学习交流分享平台。本站所有资源都可以被免费获取学习研究。本站资源来自网友分享,对搜索内容的合法性不具有预见性、识别性、控制性,仅供学习研究,请务必在下载后24小时内给予删除,不得用于其他任何用途,否则后果自负。基于互联网的特殊性,平台无法对用户传输的作品、信息、内容的权属或合法性、安全性、合规性、真实性、科学性、完整权、有效性等进行实质审查;无论平台是否已进行审查,用户均应自行承担因其传输的作品、信息、内容而可能或已经产生的侵权或权属纠纷等法律责任。本站所有资源不代表本站的观点或立场,基于网友分享,根据中国法律《信息网络传播权保护条例》第二十二与二十三条之规定,若资源存在侵权或相关问题请联系本站客服人员,点此联系我们。关于更多版权及免责申明参见 版权及免责申明
网友评论
我要评论