Это не прямой ответ на вопрос, но, возможно, ценная заметка.
Если вы звоните socket_close($socket);
в нескольких местах и хотите проверить, закрыли ли вы ранее сокет или нет, вы можете сделать это с помощью следующего сравнения:
if (get_resource_type($socket) === 'Unknown') {
exit;
}
Я нашел его, сбросив сокет до и после закрытия var_dump($socket);
- до закрытия
resource(5) of type (Socket)
- после закрытия
resource(5) of type (Unknown)
Но это не говорит о том, закрыта ли розетка с другой стороны или нет. В основном, когда соединение установлено, всегда есть две розетки - по одной на каждую сторону. Так что get_resource_type
будет проверять только ваш собственный ресурс, а не другую сторону.