$ping=fsockopen($ip, 80, $errno, $errstr, 30);
Я использую приведенный выше код для вызова какого-либо устройства.
При использовании командной строки или запуске кода на моем локальном хосте устройство не отвечает; что ожидается, потому что устройство не может отправить какой-либо пакет в ответ.
Однако, когда я запускаю код на сервере www, который у меня есть, fsockopen() возвращает TRUE.
У вас есть идеи, почему это происходит? Или как я могу проверить, отправляет ли устройство какой-либо пакет данных в ответ. Я знаю, что fsockopen() проверяет соединение только.
Согласно документации, fsockopen()
открывает соединение и возвращает resource
(а не TRUE
), когда он преуспевает.
Существует много причин, по которым он не работает с вашего локального компьютера. Я могу думать о паре, но вы можете найти точную причину, проверив значения переменных $errno
и $errstr
после возврата отказа.
$ip
?
$ip
в ваших тестах?