これは、小さな PHP IRC ボットの基本的な接続コードです。問題は、while() ループが、IRC サーバーからデータを受信するまで fgets() を超えて進行しないように見えることです。IRC サーバーがまだデータを送信していないかどうかに関係なく、while() ループを繰り返します。これは可能ですか?
$socket = fsockopen($config['irc_server'], $config['port']);
while (1)
{
$data = fgets($socket, 128);
echo '[RECEIVE] ' . $data;
$recv = explode(' ', $data);
if ($recv[0] == 'PING')
{
send('PONG', $recv[1]);
}
}