以前にデータが既に読み取られているときに、socket_read()をブロックしようとしています。$ spawnソケットが新しいデータを取得するのを待つ必要があります(等しくてもかまいません。つまり、「FE」を受信したときに両方のデータを読み取る必要があります)。
新しいデータがない場合にブロックするにはどうすればよいですか?
$i=0;
while ($i<10){
//Read and Parse Client input
$input = strtoupper(bin2hex(socket_read($spawn, 1)));
echo $input . "\n";
//Deal with requests
if ($input == "FE"){ //Server Ping
socket_write($spawn, $ping_packet);
echo "Ping Attempt \n";
} elseif ($input == "02"){ //Handshake Request
socket_write($spawn, $handshake_packet);
echo "Handshake Attempt \n";
} elseif($input == "01"){ //Login Request
socket_write($spawn, $kick_packet);
echo "Login Attempt \n";
}
$i++;
}