最近进行了DS服务器的搭建,目前代码写得差不多了,记录一下自己遇到的坑和学习感想。
DS服务器要和大厅服务器进行通信,所以使用了TCP连接来传输数据,这里因为大厅程序默认一个,所以只需要建立一个连接,可以先实现单线程监听,如果后面有多个大厅服务器要连接,那么还需要fork出新进程去监听,然后使用pipe通信,这是目前的一个实现思路。
c++的string真的是很好的一个类型,重载了一些函数和操作符,使得不用使用繁琐的C的字符串函数操作,然后一手c_str()转成字符数组,美滋滋。
安装了jsoncpp,linux安装就是先安装编译scons编译器(需要python),然后make jsoncpp,好了之后进行链接so库,再把j源文件拷到你的工程文件即可,网上教程很多,我就不放了,记得编译加上-ljson选项。windows就简单多了,只需要拷过去,然后关闭工程里的预编译头文件选项,然后就可以用了。下面是jsoncpp的语法格式
- 写入并发送
Json::Value feedback;
Json::Value json_temp;//这里新定义一个是告诉你想嵌套使用就这样,然后再赋值给一个字段
feedback[
"functionName"] =
Json::Value(
"killServer");
feedback[
"success"] =
Json::Value(
true);
feedback[
"message"] =
Json::Value(
"success killing server");
Json::FastWriter fast_writer;
string str_send = fast_writer.
write(feedback);
char char_send[str_s