目录
匹配(删的时候注意先删后面的,再删前面的,因为先删前面的下标会变)
save服务的客户端和服务端
在thrift的文件夹下创建save.thrift
这里的password为服务器(基于ac terminal)的密码经md5加密后的前八位 7e379f37
AC Terminal (acwing.com)https://www.acwing.com/file_system/file/content/whole/index/content/2543025/
namespace cpp save_service
service Save {
/**
* username: myserver的名称
* password: myserver的密码的md5sum的前8位
* 用户名密码验证成功会返回0,验证失败会返回1
* 验证成功后,结果会被保存到myserver:homework/lesson_6/result.txt中
*/
i32 save_data(1: string username, 2: string password, 3: i32 player1_id, 4: i32 player2_id)
}
生成对应的cpp文件并更改gen-cpp 名为save_client
~/thrift_lesson/match_system/src$
thrift -r --gen cpp ../../thrift/save.thrift
mv gen-cpp/ save_client
需要删除save_client下的Save_server.skeleton.cpp, 在客户端并不需要该服务且 cpp编译时是不能同时存在两个main函数
Apache Thrift - C++https://thrift.apache.org/tutorial/cpp.html#client
在main.cpp中,按照官方文档的client样例,把缺少的头文件,save_client/save.h加上,以及引入命名空间save_service
记得把client.py的"localhost"改为 客户端本地IP (即127.0.0.1)
把main.cpp的"localhost"改为 服务器地址
因为game的服务是起在本地的, 而save的服务是起在服务器的
编译链接(先编译save_client下的cpp文件)
g++ -c save_client/*cpp
g++ *.o -o main -lthrift -pthread
呜呜呜,报错了
经群内大佬指点,应该是有main的进程占用了端口,我一看,
果然是昨天的tmux的窗口还连着,kill进程后重新运行./main报错消失了!!!
上面的编译环节千万别忘了编译main.cpp, 否则就会像我一样在服务器中找不到数据的存储而以为出了bug(其实没有....
测试一波
(左下为服务器模拟游戏数据存储的服务端,,左上模拟的是游戏数据的客户端和匹配系统的服务端,右上模拟的是游戏的客户端,三者均可为不同的服务器)
本次commit记录
match server:3.0(考虑到段位)
简单的流程算是写完了
新增/删除玩家