Обнаружение раннего сбоя в php fwrite - PullRequest
5 голосов
/ 19 ноября 2009

Ранее сегодня я заметил, что некоторые вызовы php fwrite терпят неудачу, поскольку сокет назначения находился в смешанном состоянии. В SYN_SENT застряли многочисленные соединения, которые, похоже, не возвращались как сбои.

Каков наилучший способ обнаружить это и просто установить время ожидания соединения, если биты х не переданы по проводам?

1 Ответ

2 голосов
/ 19 ноября 2009

Я полагаю, вы ищете stream_set_timeout. Пример:

stream_set_timeout($fp, 2);
fwrite($fp, "GET / HTTP/1.0\r\n\r\n");

Вы можете проверить, произошло ли время ожидания, проверив метаданные потока:

$info = stream_get_meta_data($fp);
// $info['timed_out'] == true : time-out has happened
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...