文档章节

【码云周刊第 41 期】C++ 网络编程初学者的开源项目

码云Gitee
 码云Gitee
发布于 2017/09/14 18:49
字数 1392
阅读 3658
收藏 206

码云周刊

互联网的兴起,让网络程序有了长足的发展,让我们可以通过网络编程在程序中实现计算机的通信。举个例子,当你使用浏览器访问码云时,你的计算机就和码云的某台服务器通过互联网连接起来了,然后,码云的服务器把网页内容作为数据通过互联网传输到你的电脑上。

当然,对于 C++ 网络编程的初学者,小编推荐下面6个还算不错的开源项目,希望大家能够有所收获哦 :-)

码云项目推荐

1、项目名称:基于C++11 的高性能网络服务器 evpp

项目简介: evpp 是一个基于 libevent 开发的现代化 C++11 高性能网络服务器,自带 TCP/UDP/HTTP 等协议的异步非阻塞式的服务器和客户端库,具有如下特性:

  • 现代版的 C++11接口
  • 非阻塞异步接口都是 C++11 的 functional/bind 形式的回调仿函数(不是 libevent 中的C风格的函数指针)
  • CPU 多核友好和线程安全
  • 非阻塞纯异步多线程 TCP 服务器/客户端
  • 非阻塞纯异步多线程 HTTP 服务器/客户端
  • 非阻塞纯异步多线程 UDP 服务器
  • 支持多进程模式
  • 优秀的跨平台特性和高性能(继承自 libevent 的优点)
  • 已经经过详尽的测试,并已经用于生产环境,每天承载数万亿次的网络通信
  • 非常容易安装和集成,evpp 能够很容易就打包出 deb/rpm/tar.gz 等格式的安装包

项目地址:

2、项目名称:基于 C++11 的轻量级网络框架

项目简介: 本项目是一个基于 C++11 的轻量级网络框架,基于线程池技术可以实现大并发网络 IO。项目主要的功能特性包括:

网络库:

  • tcp/udp客户端,接口简单易用并且是线程安全的,用户不必关心具体的 socket api 操作。
  • tcp 服务器,使用非常简单,只要实现具体的 tcp 会话(TcpSession 类)逻辑,使用模板的方式可以快速的构建高性能的服务器。
  • 对套接字多种操作的封装。

线程库:

  • 使用线程实现的简单易用的定时器(AsyncTaskThread)。
  • 读写锁。
  • 自旋锁。
  • 线程组。
  • 简单易用的线程池,可以异步或同步执行任务,支持 functional 和 lambad 表达式。

工具库:

  • 支持颜色高亮、代码定位、异步打印。
  • 基于智能指针的循环池,不需要显式手动释放。
  • 环形缓冲,支持主动读取和读取事件两种模式。
  • 简单易用的 ssl 加解密黑盒,支持多线程。

项目地址:

3、项目名称:基于 socks4/5 的代理服务器实现

项目简介: 本项目是一个支持 socks4/5 udp 代理协议的 socks 代理服务器实现。

项目地址:

4、项目名称:基于 C++ 的网络通信库及服务器编程框架

项目简介: acl 工程是一个跨平台(支持LINUX,WIN32,Solaris,MacOS,FreeBSD)的网络通信库及服务器编程框架,同时提供更多的实用功能库。通过该库,用户可以非常容易地编写支持多种模式(多线程、多进程、非阻塞、触发器、UDP方式、协程方式)的服务器程序,WEB 应用程序,数据库应用程序。此外,该库还提供了常见应用的客户端通信库(如:HTTP、SMTP、ICMP、redis、memcache、beanstalk、handler socket),常见流式编解码库:XML/JSON/MIME/BASE64/UUCODE/QPCODE/RFC2047 etc。

项目地址:

5、项目名称:基于协程的 C++ 网络开发框架

项目简介: 本项目是一个基于协程的C++网络开发框架,主要的特点是:

  • 跨平台:同时支持 Linux32/64、OSX64 两个平台,支持 C++11及以上;
  • 易开发:同步的方式编写代码,支持类Mina的filter过滤链、简单而不失强大;
  • 高性能:可同时处理海量连接,框架无锁设计,性能超群;
  • 多特性:代码同步调用方式、支持网络过载保护、支持空闲连接自动清理等企业级特性;

项目地址:

6、项目名称:简洁易用的 C++11 网络库

项目简介: 本项目是一个简洁易用的 C++11网络库,主要特性如下所示:

  • 支持单机千万并发连接
  • 多平台支持
  • 支持优雅退出
  • 高性能
  • 支持半同步半异步处理
  • openssl 支持
  • protobuf 支持
  • udp 支持

项目地址:

推荐阅读:

【码云周刊第 40 期】GVP 特辑(三):PHP 老司机力荐的 6 款实战项目

【码云周刊第 39 期】GVP 特辑(二):7 款 JAVA 程序开发“大杀器”

【码云周刊第 38 期】GVP 特辑(一):6款 Java WEB应用开发工具

【码云周刊第 37 期】如何从运维零基础练好日志分析与统计?

【码云周刊第 36 期】微信小程序发开必备工具

请关注码云官方微信公众号,了解更多开源项目资讯!

码云微信公众号

© 著作权归作者所有

共有 人打赏支持
码云Gitee

码云Gitee

粉丝 771
博文 93
码字总数 117779
作品 0
深圳
加载中

评论(11)

y
yuanzhifei89

引用来自“styleman”的评论

:expressionless: 自己搜韩国网游的泄漏代码,server端network库。经典,能看懂,知道运用,开发大型网络程序毫无压力了。
关键字搜:韩国网游 源码?
RenKaidi
RenKaidi
点赞!
kingdelee
kingdelee
mark
styleman
styleman
:expressionless: 自己搜韩国网游的泄漏代码,server端network库。经典,能看懂,知道运用,开发大型网络程序毫无压力了。
沧海一刀
沧海一刀
马克
沧海一刀
沧海一刀
1
calvinwilliams
calvinwilliams
0
小熊猫大暴走
小熊猫大暴走
acl 真的适合网络编程初学者吗?
邪恶八稚女
邪恶八稚女
1
SHIHUAMarryMe
SHIHUAMarryMe
1
【码云周刊第 46 期】盘点那些值得你了解的10本编程教程

码云项目推荐 对于技术达人来说,广纳知识点是进步的源泉。通过阅读技术文章我们可以学到很多东西,既可以学到业务技能,又可以了解行业动态,最不济,也锻炼了阅读和学习的能力。在不断积累...

码云Gitee
2017/11/08
0
10
【码云周刊第 44 期】有哪些实用且堪称神器的 Chrome 插件

chrome 的简洁快速以及丰富的插件种类使得它在国内日益盛行,帮助了我们很多 chrome 用户提升了工作效率,而今天小编要给大家推荐9款实用甚至堪称神器的 chrome 插件,希望对提升大家的工作效...

码云Gitee
2017/10/27
0
29
【码云周刊第 45 期】人工智能工程师必备干货

码云项目推荐 如果要问当下互联网什么最热门?毫无疑问是人工智能。目前,世界上主要发达国家都已经将人工智能作为国家级发展战略。那么,踩在下一个时代的风口浪尖上,普通程序员如何向人工...

码云Gitee
2017/11/02
0
5
【码云周刊第 43 期】看完绝对想尝试的创意 Android 库,你关注了吗?

随着 Android 开发走向成熟,每天都会涌现出各种各样与 Android 相关的开发工具,但是我们每天使用的各类库总是不可或缺的。这里,小编向大家推荐一些目前码云上比较具有创意的 Android 库,...

码云Gitee
2017/10/20
0
3
OSChina 技术周刊第二十八期 —— 每周技术精粹

每周技术抢先看,总有你想要的! 移动开发 【软件】RichEditor for Android 【软件】用 React 编写移动应用 React Native 【软件】iOS 图表控件 ios-charts 【博客】【iOS越狱开发】如何将应...

OSC编辑部
2015/04/05
0
0

没有更多内容

加载失败,请刷新页面

加载更多

C++ std::thread

C++11提供了std::thread类来表示一个多线程对象。 1,首先介绍一下std::this_thread命名空间: (1)std::this_thread::get_id():返回当前线程id (2)std::this_thread::yield():用户接口...

yepanl
15分钟前
0
0
Nignx缓存文件与动态文件自动均衡的配置

下面这段nginx的配置脚本的作用是,自动判断是否存在缓存文件,如果有优先输出缓存文件,不经过php,如果没有,则回到php去处理,同时生成缓存文件。 PHP框架是ThinkPHP,最后一个rewrite有关...

swingcoder
19分钟前
0
0
20180920 usermod命令与用户密码管理

命令 usermod usermod 命令的选项和 useradd 差不多。 一个用户可以属于多个组,但是gid只有一个;除了gid,其他的组(groups)叫做扩展组。 usermod -u 1010 username # 更改用户idusermod ...

野雪球
20分钟前
0
0
Java网络编程基础

1. 简单了解网络通信协议TCP/IP网络模型相关名词 应用层(HTTP,FTP,DNS等) 传输层(TCP,UDP) 网络层(IP,ICMP等) 链路层(驱动程序,接口等) 链路层:用于定义物理传输通道,通常是对...

江左煤郎
26分钟前
0
0
使用xtrabackup完成远程备份

转载收藏,以防丢失 需求 Can I backup remote databases from my local server02-27-2013, 06:17 AMHi, I am using mysqldump so far for taking daily backups of my Production datab......

阿dai
32分钟前
1
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部