时间:2021-07-01 10:21:17 帮助过:11人阅读
= $MAX_USERS) { $reject = "Server full. Try again later.\n"; } //将当前客户端连接放如socket_select选择 $connections[$i] = $newconn; //输入的连接资源缓存容器 $writefds[$i] = $newconn; //连接不正常 if ($reject) { $close[$i] = true; } else { echo "Welcome to the PHP Chat Server!\n"; } //初始化当前连接读取内容的缓存容器 $input[$i] = ""; continue; } //客户端连接 $i = (int)$rfd; //读取 $tmp = @socket_read($rfd, 14, PHP_NORMAL_READ); if (!$tmp) { //读取不到内容 print "connection closed on socket $i\n"; close($i); continue; } $input[$i] .= $tmp; $tmp = substr($input[$i], -1); /*if ($tmp != "\r" && $tmp != "\n") { // no end of line, more data coming continue; }*/ $line = trim($input[$i]); $input[$i] = ""; echo 'Client >>'.$line."\r\n"; socket_getpeername($connections[$i],&$remoteIP,&$remotePort); echo $remoteIP."\r\n"; echo $remotePort."\r\n"; //$data=str_split($buffer); //print_r($data); $str="\xFA\x01\x01\xFF\xAA\xAA\x00\x01\x00\x00\x00\x00\x00\x01"; socket_send($connections[$i],$str,strlen($str),0); } foreach ($writefds as $wfd) { $i = (int)$wfd; $w = socket_write($wfd, "hello"); } } } function close($i) { global $connections, $input, $close; socket_shutdown($connections[$i]); socket_close($connections[$i]); unset($connections[$i]); unset($input[$i]); unset($close[$i]); } ?>