C/C++轻量级并发TCP服务器框架Zinx

编程入门 行业动态 更新时间:2024-10-26 05:26:17

C/C++轻量级并发TCP服务器<a href=https://www.elefans.com/category/jswz/34/1770644.html style=框架Zinx"/>

C/C++轻量级并发TCP服务器框架Zinx

文章目录

  • 1 Redis的安装与API的使用
    • 1.1 安装目录及环境变量
    • 1.2 设置远程客户端连接和守护进程
    • 1.3 启动redis
    • 1.4 Hiredis API的使用
    • 1.5 我的动态库和头文件
  • 2 Redis的使用
    • 2.1 初始化时候
    • 2.2 结束的时候
  • 3 测试
  • 4 Makefile
  • 5 游戏业务总结

1 Redis的安装与API的使用

1.1 安装目录及环境变量

7.2版本redis-cli命令在bin目录下:

vim /etc/profileexport REDIS_HOME=/usr/local/redis/bin
export PATH=$PATH:$REDIS_HOME

1.2 设置远程客户端连接和守护进程

cp /usr/local/redis/redis-7.2.3/redis.conf /usr/local/redis/bin/
vim /usr/local/redis/bin/redis.conf

1.3 启动redis

redis-server /usr/local/redis/bin/redis.conf

1.4 Hiredis API的使用

git clone .git
cd hiredis
make
make install
mkdir -p /usr/local/include/hiredis /usr/local/include/hiredis/adapters /usr/local/:/usr/local/protobuf/lib/:/opt/instantclient_12_2
cp -pPR hiredis.h async.h read.h sds.h alloc.h sockcompat.h /usr/local/include/hiredis
cp -pPR adapters/*.h /usr/local/include/hiredis/adapters
cp -pPR libhiredis.so /usr/local/:/usr/local/protobuf/lib/:/opt/instantclient_12_2/libhiredis.so.1.2.1-dev
cd /usr/local/:/usr/local/protobuf/lib/:/opt/instantclient_12_2 && ln -sf libhiredis.so.1.2.1-dev libhiredis.so && ln -sf libhiredis.so.1.2.1-dev libhiredis.so.1
cp -pPR libhiredis.a /usr/local/:/usr/local/protobuf/lib/:/opt/instantclient_12_2
mkdir -p /usr/local/:/usr/local/protobuf/lib/:/opt/instantclient_12_2/pkgconfig
cp -pPR hiredis.pc /usr/local/:/usr/local/protobuf/lib/:/opt/instantclient_12_2/pkgconfig

1.5 我的动态库和头文件

根据上述的输出信息,我把动态库直接拷贝到了系统目录下,程序加载的时候加载的是libhiredis.so.1.2.1-dev

 cp /usr/local/:/usr/local/protobuf/lib/:/opt/instantclient_12_2/libhiredis.so /usr/libcp /usr/local/:/usr/local/protobuf/lib/:/opt/instantclient_12_2/libhiredis.so.1.2.1-dev /usr/lib

头文件的位置没有改变,使用的默认设置

usr/local/include/hiredis
  • 路径和库要根据实际情况设置
  • C函数库,包含头文件<hiredis/hiredis.h> ,编译时指定链接参数为-L/usr/lib -lhiredis
  • 运行时若提示找不到共享库,则在.bashrc最末端添加一句export LD_LIBRARY_PATH=/usr/lib,重新打开终端运行。
  • redisConnect跟数据库建立链接(redisFree释放掉)。
  • redisCommand发命令并通过返回值取出结果(freeReplyObject释放掉)。

2 Redis的使用

2.1 初始化时候

//记录当前姓名到redis的game_name//1 连接redisauto context = redisConnect("127.0.0.1", 6379);//2 发送lpush命令if (NULL != context){freeReplyObject(redisCommand(context, "lpush game_name %s", szName.c_str()));redisFree(context);}

2.2 结束的时候

	//从redis  game_name中删掉当前姓名auto context = redisConnect("127.0.0.1", 6379);if (NULL != context){freeReplyObject(redisCommand(context, "lrem game_name 1 %s", szName.c_str()));redisFree(context);}

3 测试



4 Makefile

game:*.cpp *hg++ -Wall -g -pthread -std=c++11 $^ -o $@ -lzinx -lpthread -lprotobuf

5 游戏业务总结

更多推荐

C/C++轻量级并发TCP服务器框架Zinx

本文发布于:2023-11-15 21:27:06,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1606617.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:框架   服务器   TCP   Zinx

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!