Я использую сокеты на своем веб-сайте и привязываю сокет к IP-адресу веб-сайта, но когда я подключаюсь к веб-сайту через этот порт, он не подключается. Сокеты создаются, и веб-сайт прослушивает входящие соединения, ошибок нет, но ошибка отображается при попытке подключиться к веб-сайту. Если я изменю код для прослушивания 127.0.0.1
Работает без проблем.
Сайт прослушивает порт 6662
который является неофициальным портом IRC. Что не происходит?
Я делаю следующее, чтобы telnet сайт.
telnet www.nameofwebsite.com 6662
telnet ipofwebsite 6662
он пытается подключиться, затем завершается неудачно с сообщением об ошибке: «Не удалось открыть подключение к хосту через порт 6662: ошибка подключения
Конечный скрипт маленький и простой.
<?php
set_time_limit(0);
error_reporting(E_NOTICE);
$address = "ipofwebsite"; // if i change this to 127.0.0.1 and telnet localhost 6662, it works.
$port = 6662;
# root socket
$root = socket_create(AF_INET, SOCK_STREAM, SOL_TCP);
# reuse socket
if( socket_set_option($root, SOL_SOCKET, SO_REUSEADDR, 1) == false )
{
echo socket_strerror(socket_last_error());
}
# bind socket
if( socket_bind($root, $address, $port) === false )
{
echo socket_strerror(socket_last_error());
}
# listen on the socket
if( socket_listen($root) === false )
{
echo socket_strerror(socket_last_error());
}
# accept a connection
if( ( $client = socket_accept($root) ) === false )
{
echo socket_strerror(socket_last_error());
}
echo "Connection accepted<br />";
socket_close($root);
?>
Он продолжает слушать, но не принимает никакого соединения telnet.
Задача ещё не решена.
Других решений пока нет …