static void ProcessCommand(lxnet::Socketer *sock, const char *commandstr) { static char s_buf[32 * 1024]; short size = 0; MessagePack res; if (strcmp(commandstr, "help") == 0) { snprintf(s_buf, sizeof(s_buf) - 1, "help 帮助\nopenelapsed/closeelapsed 打开/关闭帧开销实时日志\ncurrentinfo 输出当前信息\nnetmeminfo 输出网络库内存使用情况\nallmeminfo 输出此程序内存池使用信息到文件\n"); size = static_cast<short>(strlen(s_buf)) + 1; s_buf[size] = 0; res.PushString(s_buf); sock->SendMsg(&res); } else if (strcmp(commandstr, "openelapsed") == 0) { g_elapsed_log_flag = true; snprintf(s_buf, sizeof(s_buf) - 1, "帧开销实时日志已打开"); size = static_cast<short>(strlen(s_buf)) + 1; s_buf[size] = 0; res.PushString(s_buf); sock->SendMsg(&res); } else if (strcmp(commandstr, "closeelapsed") == 0) { g_elapsed_log_flag = false; snprintf(s_buf, sizeof(s_buf) - 1, "帧开销实时日志已关闭"); size = static_cast<short>(strlen(s_buf)) + 1; s_buf[size] = 0; res.PushString(s_buf); sock->SendMsg(&res); } else if (strcmp(commandstr, "currentinfo") == 0) { size = 0; DBCenterConnect.GetCurrentInfo(&s_buf[size], sizeof(s_buf) - size - 1); size = static_cast<short>(strlen(s_buf)); DBCenterConnect.GetDataHandInfo(&s_buf[size], sizeof(s_buf) - size - 1); size = static_cast<short>(strlen(s_buf)); DBCache.GetCurrentInfo(&s_buf[size], sizeof(s_buf) - size - 1); s_buf[sizeof(s_buf) - 1] = 0; res.PushString(s_buf); sock->SendMsg(&res); } else if (strcmp(commandstr, "netmeminfo") == 0) { snprintf(s_buf, sizeof(s_buf) - 1, "%s", lxnet::net_get_memory_info(s_buf, sizeof(s_buf) - 1)); size = static_cast<short>(strlen(s_buf)) + 1; s_buf[size] = 0; res.PushString(s_buf); sock->SendMsg(&res); } else if (strcmp(commandstr, "allmeminfo") == 0) { sPoolInfo.writeinfotofile(); snprintf(s_buf, sizeof(s_buf) - 1, "所有内存信息已经写入到文件"); size = static_cast<short>(strlen(s_buf)) + 1; s_buf[size] = 0; res.PushString(s_buf); sock->SendMsg(&res); } else { res.PushString(commandstr); sock->SendMsg(&res); } }