fsockopen () возвращает разные значения на локальном хосте и сервере www

0
$ping=fsockopen($ip, 80, $errno, $errstr, 30);

Я использую приведенный выше код для вызова какого-либо устройства.

При использовании командной строки или запуске кода на моем локальном хосте устройство не отвечает; что ожидается, потому что устройство не может отправить какой-либо пакет в ответ.

Однако, когда я запускаю код на сервере www, который у меня есть, fsockopen() возвращает TRUE.

У вас есть идеи, почему это происходит? Или как я могу проверить, отправляет ли устройство какой-либо пакет данных в ответ. Я знаю, что fsockopen() проверяет соединение только.

  • 0
    Вы сказали, что пингуете "какое-то устройство". Какое значение $ip в ваших тестах?
Теги:

1 ответ

0

Согласно документации, fsockopen() открывает соединение и возвращает resource (а не TRUE), когда он преуспевает.

Существует много причин, по которым он не работает с вашего локального компьютера. Я могу думать о паре, но вы можете найти точную причину, проверив значения переменных $errno и $errstr после возврата отказа.

  • 0
    Хорошо, что он не работает с моего локального компьютера, я не знаю, почему он работает с www, вот в чем проблема, он не должен работать. На локальном компьютере я получаю errno = 10060, и я хочу получить этот результат и на www. Может ли это быть вызвано версией PHP? На wampserver (localhost) у меня более поздняя версия.
  • 0
    10060 в Windows - это тайм-аут соединения . Однако какова стоимость $ip ?
Показать ещё 5 комментариев

Ещё вопросы

Сообщество Overcoder
Наверх
Меню