Bueno, la forma que yo utilizo es mucho mas sencilla (solo uso fsockopen, fgets y fwrite)
Pero podrias usar un bucle y socket_read().
Un ejemplo sencillo:
Código PHP:
while (true) {
$buf = socket_read($spawn, 2048, PHP_NORMAL_READ);
if ($buf) {
echo 'Se ha recibido: '.$buf.'<br />';
}
}