asio_kcp服务器选用和参考的一些库

运行环境:Mac
服务器:asio_kcp
编译直接执行主目录下的allmake.sh文件,不过编译前需要安装一些依赖库。
依赖库:

  • Boost 1.58.0
    Mac环境安装方式
$ ./bootstrap.sh
#服务器引用的mt库,需要指定下编译多线程库
$ sudo ./b2 --layout=tagged threading=multi install
  • Protobuf3.5.0
    编译和安装参考自带的README.md
$ sudo brew install autoconf automake libtool curl make g++ unzip
$ ./autogen.sh
$ ./configure
$ make
$ make check
$ sudo make install
  • Muduo
    asio_kcp项目third_party目录下自带muduo压缩包,解压后,先打上mac的diff patch。
$ patch -p1 < MacOSX.diff
然后修改muduo/CMakeLists.txt文件
CXX_FLAGS中添加下面两行:
-D__GXX_EXPERIMENTAL_CXX0X__
-std=c++11
注释掉 -march=native
注释掉 -Werror
注释掉 set(CMAKE_CXX_COMPILER "clang++")
然后在muduo目录下执行:
$ CC=gcc CXX=g++ BUILD_DIR=./build BUILD_TYPE=release BUILD_NO_EXAMPLES=1 . ./build.sh
编译完成
  • g2log/gmock/gtest
    可以直接修改third_party目录下的build.sh文件进行编译,注意muduo库最好按照上面的步骤单独编译。

可选库:

  • 编解码库crypto++
    功能全面,可以用来做数据加密解密,和常用的MD5和Base64编解码。大部分的教程在Wiki上,比如编译教程。
$ make static dynamic cryptest.exe

有个比较方便的管道Pipelining模式,所有新建的对象会传递到上级filter,然后由其负责销毁。比如MD5编码可以参考如下写法:

    // Memory malloc/free detail see: https://www.cryptopp.com/wiki/Pipelining
    static std::string EncodeMD5(const std::string &strIn)
    {
        std::string digest;
        CryptoPP::Weak::MD5 md5;
        CryptoPP::StringSource(strIn, true,
            new CryptoPP::HashFilter(md5,
                new CryptoPP::HexEncoder(
                    new CryptoPP::StringSink(digest), false)));

        return digest;
    }
  • Json库RapidJSON
    没啥说的,鹅厂出品,战神制作组都在用。如果不在意速度,可以试下nlohmann_json,易用度更接近c++11和脚本语言。
  • 日志库spdlog
    速度和易用性都还不错,还带Console输出各种颜色和格式。

你可能感兴趣的:(asio_kcp服务器选用和参考的一些库)