if (!$flag) { __SOCKET_ERRORLOG__("未找到在线的服务器。"); } if ($chosen == -1) { $z = rand(0, count($srvlist) - 1); $chosen = $srvlist[$z]; touch(GAME_ROOT . './gamedata/tmp/server/request_new_server'); __SOCKET_LOG__("没有服务器空闲,已请求脚本启动新服务器。"); } __SOCKET_DEBUGLOG__("选择了端口号为 " . $chosen . '的服务器 。'); $___TEMP_CONN_PORT = $chosen; } else { __SOCKET_ERRORLOG__('无法打开gamedata/tmp/server目录。'); } __SOCKET_SEND_TO_SERVER__(); __SOCKET_DEBUGLOG__('Client执行完成。'); die; } else { //否则是由server自行引用的command.php,开始执行 $pagestartime = microtime(true); } } } else { $pagestartime = microtime(true); require GAME_ROOT . './include/common.inc.php'; $timecost2 = get_script_runtime($pagestartime); } //////////////////////////////////////////////////////////////////////////// //////////////////////////游戏前玩家信息检查/////////////////////////////////// //////////////////////////////////////////////////////////////////////////// if (!$cuser || !$cpass) {
function __SEND_STOP_CMD__($port) { $___TEMP_socket = socket_create(AF_INET, SOCK_STREAM, SOL_TCP); if ($___TEMP_socket === false) { __SOCKET_WARNLOG__("警告:socket_create失败。"); return false; } $___TEMP_connected = socket_connect($___TEMP_socket, '127.0.0.1', $port); if (!$___TEMP_connected) { __SOCKET_WARNLOG__("警告:socket_connect失败。"); return false; } //允许3秒等待 if (!__SOCKET_CHECK_WITH_TIMEOUT__($___TEMP_socket, 'w', 3, 0)) { __SOCKET_WARNLOG__("警告:socket_write等待时间过长。"); return false; } //发送消息给server global $___MOD_CONN_PASSWD; if (!socket_write($___TEMP_socket, $___MOD_CONN_PASSWD . 'stop' . "\n")) { __SOCKET_WARNLOG__("警告:socket_write失败"); return false; } __SOCKET_DEBUGLOG__("消息已成功发送,关闭连接。"); socket_shutdown($___TEMP_socket); //关闭socket return true; }