У меня странная проблема с сетью, которую я пытался решить последние 2 дня.Я не могу открыть порт 25003 на веб-странице php.Код, похоже, не является проблемой, однако, как указано ниже.
$host = 'xx.xx.xx.xx'; // statis public ip address assigned by my isp
$ports = array(80, 25003);
foreach ($ports as $port)
{
$connection = fsockopen($host, $port);
if (is_resource($connection))
{
echo '<h2>' . $host . ':' . $port . ' ' . '(' . getservbyport($port, 'tcp') . ') is open.</h2>' . "\n";
fclose($connection);
}
else
{
echo '<h2>' . $host . ':' . $port . ' is not responding.</h2>' . "\n";
}
}
Порт 80 показывает открытый, но не порт 25003.
Сайт размещен в плане общего хостинга Bluehost со статическим IP-адресом.Перекрестный с ними более чем в 3 раза подтвержден тот факт, что порт 25003 открыт как на входящем, так и на исходящем соединении.Будут ли они лгать, я так не думаю.
На настройках клиентского ПК:
(1) Firewall is disabled for testing purpose.
(2) Port forwarding is done correctly in router. I assume so because
I can easily telnet MY PUBLIC IP with a port 25003 within the same
LAN and from phone using sim card's internet.
(3) I did a port check from https://ping.eu/port-chk/ and it shows open.
(4) Client PC has a serproxy installed for serial to IP & Port.
(5) When I do a port check from above link, serproxy shows following message which seems to be okay on its part.
* server thread launched
* server(1) - thread started
* server(1) - EOF from sock
* server(1) - Exiting
(6) Again, when I telnet from external lan, it shows above message in Client PC's Serproxy which means it is doing its work properly. And it shows correct data from serial port to cmd line while telneting.
Проблема в том, что когда я fsockopen, используя приведенные выше фрагменты кода, он говорит, что СОЕДИНЕНИЕ ОТКАЗАНО.
Ниже приведен мой действительный код, который должен пытаться подключиться и прочитать данные из последовательного порта, но СОЕДИНЕНИЕ ОТКАЗАНО.
$fp = fsockopen("tcp://xx.xx.xx.xx", 25003, $errno, $errstr);
if (!$fp) {
echo "$errstr ($errno)<br />\n";
} else {
if (!feof($fp)) {
$weight = trim(fgets($fp, 64)," ");
}
}
echo $weight;
fclose($fp);
Я думаю, что проблема заключается либо в общем сервере bluehost, либо в клиентском ПК с Windows, либо в SERPROXY, либо в конфигурации локальной сети.Я боюсь, что в SERPROXY возможно какое-либо серьезное изменение конфигурации, кроме скорости в бодах, com-порта и т. Д., Которые установлены правильно.
Теперь я совершенно не понимаю, как решить указанную проблему.Если кто-то может помочь, будет принята с благодарностью.
Я бы предоставил общедоступный IP-адрес, если кто-то захочет проверить подключение.