我们学习每一个编程语言都是有一个项目实战的过程,而对于开发类的编程语言,除了适当的做项目程序外,学习了解其他的开源项目更是一个关键,就比如我们的C/C++编程语言的学习。
前阵子有一个小伙伴就问到我,我学好C/C++基础后,应该怎么找一些适合C/C++提升的开源项目学习一下,让我推荐一下,我想了一下,又上网参考了一下,就给他列举了一些,顺便记下来,分享给各位在学习C/C++的小伙伴,希望能够帮助到大家!
Webbench是一个在linux下使用的非常简单的网站压测工具。它使用fork()模拟多个客户端同时访问我们设定的URL,测试网站在压力下工作的性能,最多可以模拟3万个并发连接去测试网站的负载能力。Webbench使用C语言编写, 代码实在太简洁,源码加起来不到600行。下载链接:GitHub - EZLippi/WebBench
Tinyhttpd是一个超轻量型Http Server,使用C语言开发,全部代码只有502行(包括注释),附带一个简单的Client,可以通过阅读这段代码理解一个 Http Server 的本质。下载链接链接:GitHub - EZLippi/Tinyhttpd
高性能web服务器nginx: download
C语言写的事件驱动框架libevent/libevent · GitHub
ACE:C++面向对象网络变成工具包
Boost.Asio:用于网络和底层I/O编程的跨平台的C++库
Casablanca:C++ REST SDK
cpp-netlib:高级网络编程的开源库集合
Dyad.c:C语言的异步网络
libcurl :多协议文件传输库
Mongoose:非常轻量级的网络服务器
Muduo :用于Linux多线程服务器的C++非阻塞网络库
net_skeleton :C/C++的TCP 客户端/服务器库
nope.c :基于C语言的超轻型软件平台,用于可扩展的服务器端和网络应用。 对于C编程人员,可以考虑node.js
Onion :C语言HTTP服务器库,其设计为轻量级,易使用。
POCO:用于构建网络和基于互联网应用程序的C++类库,可以运行在桌面,服务器,移动和嵌入式系统。
RakNet:为游戏开发人员提供的跨平台的开源C++网络引擎。
Tuf o :用于Qt之上的C++构建的异步Web框架。
WebSocket++ :基于C++/Boost Aiso的websocket 客户端/服务器库
ZeroMQ :高速,模块化的异步通信库
这个网站整理的比较全,可以看看ezlippi.com 的页面另外编写高性能web服务器当然离不开缓存啦,可以关注下Redis和Memcached.
最后,学了C/C++,走遍天下都不怕!加油吧!未来的C/C++工程师!另外,关于提升C/C++编程能力以及问题交流的话,可以到访q群--先5692;后68376,欢迎一起进步!