根据客户需求,游戏过程中,需要记录玩家的一些操作,形成录像功能.
简要设计为: 玩家每次进行操作时,服务端提记录每一条通信协议与数据,保存到文件中,当玩家需要查看录像时,客户端下载通信协议信息,模拟玩家的操作过程.为方便写入大量数据文件信息,不对服务器机器造成影响(容量太大,硬盘不够),这里采用c++中发送http请求到web服务器,直接调用php的文件操作方法,实现文件记录功能.
1.c++中的信息发送到web服务器,这里是c++直接拼数据信息
简要代码实现:
套接字:
http_socet = socket(AF_INET,SOCK_STREAM,0);
sockaddr_in s_add;
memset(&s_add, sizeof(s_add), 0);
s_add.sin_family = AF_INET;
s_add.sin_addr.s_addr = inet_addr(ip);
s_add.sin_port = htons(port);
if (0 != connect(http_socket, (sockaddr*)&s_add, sizeof(sockaddr)))
{
LOG_WARN("%s", "connect to http server failed!");
break;
}
拼接数据信息:
// boundary
std::string boundary = "---------------------