Если делать много последовательных записей в сокет (tcp), то ответы сервера накапливаются в очереди в сокете. И затем, когда читаем из сокета, то получаем самый первый ответ сервера.
Как получать ответ на последнюю запись в сокет?
$sock = socket_create(AF_INET, SOCK_STREAM, SOL_TCP);
socket_connect($sock, $ip, $port);
socket_write ($sock, $send1); //Сервер должен ответить: A
socket_write ($sock, $send2); //Сервер должен ответить: B
socket_write ($sock, $send3); //Сервер должен ответить: C
socket_write ($sock, $send4); //Сервер должен ответить: D
socket_read($sock, 1); // Получаем A, а надо - D
Как в socket_read получить D, не читая предыдущие ответы (длина ответов неизвестна, сервер соединение не закрывает)?