socket_read()
блокируется. Он зависает, пока есть что почитать. Кроме того, вам нужно будет вызывать его несколько раз, пока он не вернет пустую строку (конкатенируя то, что вы получили), и только тогда вы дадите полный ответ.
Вот как работают операции с сокетами:
socket_write($socket, 'request');
$response = '';
do {
$buffer = socket_read($socket, $number_of_bytes_to_read);
$response .= $buffer;
} while (!empty($buffer));