Ошибка соединения с отказом в PHP

[06-Nov-2013 17:57:32] Предупреждение PHP: socket_connect() [function.socket-connect]: невозможно подключиться [111]: Отказано в соединении в /home2/whoop/public_html/phptesting/main.php в сети 43

Я продолжаю получать эту ошибку. Это фрагмент кода в моем main.php

<?php

$host = '76.72.172.166';
$port = 25608;

$socket = socket_create(AF_INET, SOCK_STREAM, SOL_TCP); //Create the socket
$connected = socket_connect($socket, $host, $port);//Try and connect
?>

Я пытаюсь настроить список игроков Minecraft, это то, что я использую http://forums.bukkit.org/threads/web-constantly-updated-website-widgets.148592/


person chargers2143    schedule 07.11.2013    source источник
comment
С вашим кодом все в порядке, это может быть ошибка сервера, возможно брандмауэр или он не правильно настроен?   -  person user1909426    schedule 07.11.2013
comment
возможный дубликат ошибка отказа в соединении на socket_connect в php   -  person showdev    schedule 07.11.2013
comment
попробуйте telnet 76.72.172.166 25608 от того же пользователя, который запускает php-скрипт   -  person zerkms    schedule 07.11.2013
comment
Если у вас есть доступ к серверу из командной строки, попробуйте ping 76.72.172.16 узнать, можете ли вы получить доступ к этому IP-адресу, и если да, telnet 76.72.172.16 25608 убедитесь, что вы можете получить доступ к этому порту.   -  person doublesharp    schedule 07.11.2013
comment
@doublesharp: если вы можете добраться до этого IP --- наличие пинга в этом случае ничего не значит. ICMP может быть отключен, а порт все еще доступен. Верно и обратное.   -  person zerkms    schedule 07.11.2013
comment
@doublesharp: так что же это значит (с точки зрения доступности порта TCP)?   -  person zerkms    schedule 07.11.2013
comment
@doublesharp: С другой стороны, я не могу добраться до этого порта --- так как же ping помог это понять? :-) Предположим, что charges2143 видит то же самое --- есть вероятность, что 76.72.172.166 разрешает подключения только из определенной подсети/IP-адреса.   -  person zerkms    schedule 07.11.2013
comment
у меня тоже пинг работает   -  person chargers2143    schedule 07.11.2013
comment
@doublesharp: Потому что, если он не может добраться до IP --- что именно означает добраться до IP? ICMP никак не связан с TCP 25608. Так что проверка одного не имеет ничего общего с другим.   -  person zerkms    schedule 07.11.2013
comment
@doublesharp: ICMP обычно открыт больше, чем другой случайный порт --- и что? telnet будет содержать все необходимое для продолжения исследования. Я до сих пор не понимаю, как результаты ping (успешные или нет) могут пролить свет на проблему. PS: вы понимаете, что маршрут ICMP может отличаться от TCP 25608?   -  person zerkms    schedule 07.11.2013
comment
@doublesharp: вы пытались прочитать вывод? Об этом говорится прямо. Я понимаю, что читать скучно, и я привык спорить с людьми, которые едва ли могут прочитать одну строчку, но, пожалуйста, сделайте мне одолжение, прежде чем писать здесь свой следующий ответ. Спасибо.   -  person zerkms    schedule 07.11.2013
comment
@doublesharp: так? Как вы думаете, что это значит?   -  person zerkms    schedule 07.11.2013
comment
@chargers2143 извините за все споры в Интернете ... я только что попытался снова подключиться к вашему IP / порту через telnet, и это сработало, так что вы можете попробовать, они могли просто немного не работать.   -  person doublesharp    schedule 07.11.2013
comment
@doublesharp хорошо, спасибо   -  person chargers2143    schedule 07.11.2013
comment
Это все еще не работает. Может ли это быть проблема с брандмауэром, как сказано в первом комментарии? Или вы знаете какие-либо другие вещи, чтобы попробовать? Спасибо за помощь.   -  person chargers2143    schedule 07.11.2013
comment
Я пробовал это с другими IP-адресами сервера Minecraft, и у него все еще была та же ошибка.   -  person chargers2143    schedule 07.11.2013
comment
Не рекомендуется размещать фактические IP-адреса, так как это может привести к взлому указанного сервера.   -  person Skelly1983    schedule 22.01.2017


Ответы (1)


Попробуйте в качестве UDP-соединения

$host = '76.72.172.166';
$port = 25608;

$socket = socket_create(AF_INET, SOCK_DGRAM, SOL_UDP); //Create the socket
$connected = socket_connect($socket, $host, $port);//Try and connect
person Phillip Bartschinski    schedule 05.04.2016