有什么适合提高CC++网络编程能力的开源项目推荐?
如果是学习的话我推荐你去看看Linux、FreeBSD系统中与网络有关的那些命令程序的代码,比如ping、tcpdump等等,他们还有很多更强大的开源替代方案,比如mtr,都是学习的好材料。这些程序都追求把一件事情做到极致,所以往往结构清晰却又不会过于简单,你看看光是下载就有wget和curl两大神器够你折腾了。Linux和FreeBSD的这类自带命令虽然功能相同,但往往实现方式有很大差别,对比阅读效果甚好。
ebbench是一个在linux下使用的非常简单的网站压测工具。它使用fork()模拟多个客户端同时访问我们设定的URL,测试网站在压力下工作的性能,最多可以模拟3万个并发连接去测试网站的负载能力。Webbench使用C语言编写,代码实在太简洁,源码加起来不到600行。下载链接:GitHub-EZLippi/WebBench
Tinyhttpd是一个超轻量型HttpServer,使用C语言开发,全部代码只有502行(包括注释),附带一个简单的Client,可以通过阅读这段代码理解一个HttpServer的本质。下载链接链接:GitHub-EZLippi/Tinyhttpd
高性能web服务器nginx:download
C语言写的事件驱动框架libevent/libevent·GitHub
ACE:C++面向对象网络变成工具包
BoostAsio:用于网络和底层I/O编程的跨平台的C++库
Casablanca:C++RESTSDK
cpp-netlib:高级网络编程的开源库集合
Dyadc:C语言的异步网络
libcurl:多协议文件传输库
Mongoose:非常轻量级的网络服务器
Muduo:用于Linux多线程服务器的C++非阻塞网络库
net_skeleton:C/C++的TCP客户端/服务器库
nopec:基于C语言的超轻型软件平台,用于可扩展的服务器端和网络应用。对于C编程人员,可以考虑nodejs
Onion:C语言HTTP服务器库,其设计为轻量级,易使用。
POCO:用于构建网络和基于互联网应用程序的C++类库,可以运行在桌面,服务器,移动和嵌入式系统。
RakNet:为游戏开发人员提供的跨平台的开源C++网络引擎。
Tufo:用于Qt之上的C++构建的异步Web框架。
WebSocket++:基于C++/BoostAiso的websocket客户端/服务器库
ZeroMQ:高速,模块化的异步通信库
这个网站整理的比较全,可以看看ezlippicom的页面另外编写高性能web服务器当然离不开缓存啦,可以关注下Redis和Memcached
没有函数可以做这个,你要自己把客户发给你的URL中的命令(GET。。)HOST NAME, PORT NAME, HTTP/11OR10 还有PATH找出来,然后和服务器建立连接,再把header 改编发给服务器,具体的格式可以用wireshark看,然后接受服务器返回给你的包,原封不动再返回给client
0条评论