专栏首页开源项目C++ 网络编程初学者的开源项目 | 码云周刊第 41 期

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

码云项目推荐

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

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

/ 01 /

项目名称:基于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 等格式的安装包

项目地址:

https://gitee.com/zieckey/evpp

/ 02 /

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

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

网络库:

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

线程库:

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

工具库:

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

项目地址:

https://gitee.com/xiahcu/ZLToolKit

/ 03 /

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

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

项目地址:

https://gitee.com/jackarain/socks_server

/ 04 /

项目名称:基于 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。

项目地址:

https://gitee.com/acl-dev/acl

/ 05 /

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

项目简介: 本项目是一个基于协程的C++网络开发框架.

主要的特点

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

项目地址:

https://gitee.com/cxxjava/CxxConet

/ 06 /

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

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

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

项目地址:

https://gitee.com/yedf/handy

本文分享自微信公众号 - 码云Gitee(mayunOSC),作者:Gitee

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2017-10-11

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • Java 微服务从源码实战开始 | 码云周刊第 49 期

    在软件开发的不同时期、阶段,对技术架构的理解、选择和应用都有着不一样的诉求。微服务架构是当前互联网业界的一个技术热点,它的思想也更符合我们的目标: 根据业务模块...

    码云Gitee
  • 优质推荐 | 看 3 月新增1k+ Star 及 GVP 项目如何将你俘获

    码云Gitee
  • nginx+tomcat 配置负载均衡集群

    Hello world 前期环境准备 1、准备两个解压版tomcat,如何同时启动两个tomcat,请看我的另一篇文章《一台机器同时启动多个tomcat》。 2...

    码云Gitee
  • LAMP 平台搭建详解

    LAMP 架构是目前成熟的企业网站应用模式之一,能够提供动态 Web 站点服务及其应用开发环境。 LAMP 是一个缩写词,具体包括: 1、Linux 操作系统 ...

    小手冰凉
  • D-News | 苹果超三星成美智能手机第一大生产商 俄罗斯将封杀LinkedIn

    大数据文摘
  • 安装PHP7

    PHP 7 安装 : 其实安装PHP7的步骤和安装php5完全一样。 下载安装 cd /usr/local/src/ wget http://cn2.php....

    老七Linux
  • LAMP(3)安装PHP5、安装PHP7

    2.下载包: wget http://cn2.php.net/distributions/php-5.6.30.tar.gz

    py3study
  • 谷歌宠儿 AlphaGo 将对战暴雪《星际争霸 2》

    镁客网
  • 普通用户实现免密登陆

    dogfei
  • ZooKeeper ZAB 协议模式

    当服务框架在启动中,或是当 Leader 服务器出现网络中断、崩溃退出或重启等异常情况时,ZAB 协议就会进人恢复模式,然后选举产生新的 Leader 服务器。

    happyJared

扫码关注云+社区

领取腾讯云代金券