PHP fsockopen |
Здравствуйте, гость ( Вход | Регистрация )
PHP fsockopen |
Aug 31 2006, 09:38
Сообщение
#1
|
|
N.N.G. Группа: Posters Сообщений: 292 Регистрация: 16.10.2005 Пользователь №: 103 |
кратко:
Код <?php function status_tcp($ip,$port) { if ($ip=="") { $ip="192.168.1.2"; } if (@fsockopen($ip, $port, $errno, $errstr, 0.3)) { echo "<font color=blue>OnLine</font><p>"; } else { echo "<font color=red>OffLine</font><p>"; } } function status_udp($ip,$port) { if ($ip=="") { $ip="udp://192.168.1.2"; } if (@fsockopen($ip, $port, $errno, $errstr,1)) { echo "<font color=blue>OnLine</font><p>"; } else { echo "<font color=red>OffLine</font><p>"; } } ?> Основная чать. В ней происходят все расчеты Код <CENTER> <TABLE BORDER CELLPADDING=5> <CAPTION ALIGN=top><h2>Статус серверов</h2> </CAPTION> <TR> <TD><b> Название сервера</b> </TD> <TD><b> IP - сервера</b> </TD> <TD><b> Статус сервера</b> </TD> <TD><b> Дополнительно </b> </TD> </TR> <TR> <TD NOWRAP >NFS Undeground 1.4</TD> <TD>wow.cheb.ru</TD> <TD> <?php status_tcp("",10800) ?> <TD> <a href="http://wow.cheb.ru/forums/index.php?showtopic=15">Настройка игры</a> <p> </TR> <TR> <TD NOWRAP >Quake 3 1.32 </TD> <TD>wow.cheb.ru</TD> <TD> <?php status_udp("", 27960) ?> <TD> <a href="http://wow.cheb.ru/forums/index.php?showtopic=8&pid=18&st=0&#entry18">Настройка игры</a> <p> </TR> Теперь проблема. для открытия тцп порта все нормально и правильно. Но когда и хочю проверить UDP порт. Он мне всегда выдает "OnLine" Прочитал много мануало, читал в нете. Ничего не помогло. едиственное отличие ТЦП и УДВ это время подключеия к порты. В книгах его вообще нет. Сообщение отредактировал LLeSS - Aug 31 2006, 10:49 |
|
|
Aug 31 2006, 12:34
Сообщение
#2
|
|
Супер постер Группа: Posters Сообщений: 575 Регистрация: 17.11.2005 Из: AfaNet Пользователь №: 132 |
Пример 2. Using UDP connection
Код <?php
$fp = fsockopen("udp://127.0.0.1", 13, $errno, $errstr); if (!$fp) { echo "ERROR: $errno - $errstr<br />\n"; } else { fwrite($fp, "\n"); echo fread($fp, 26); fclose($fp); } ?> -------------------- "неправильная" подпись может быть находкой для шпионов
город: Город Афанет (траф) Yandex.Деньги 4100151149425 #КартинкА# |
|
|
Гость_karpen_* |
Aug 31 2006, 13:02
Сообщение
#3
|
Guests |
Цитата из книги "Протоколы TCP/IP", том 1 (в интернете легко её найти).
Цитата UDP использует Internet Protocol для передачи сообщения от одной машины к другой и обеспечивает ту же самую ненадежную доставку сообщений, что и IP. UDP не использует подтверждения прихода сообщений, не упорядочивает приходящие сообщения и не обеспечивает обратной связи для управления скоростью передачи информации между машинами. Поэтому, UDP сообщения могут быть потеряны, размножены или приходить не по порядку. Кроме того, пакеты могут приходить раньше, чем получатель сможет обработать их. В общем можно сказать, что: UDP обеспечивает ненадежную службу без установления соединения и использует IP для транспортировки сообщений между машинами. Он предоставляет возможность указывать несколько мест доставки на одном компьютере.
Прикладные программы, использующие UDP, несут полную ответственность за проблемы надежности, включая потерю сообщений, дублирование, задержку, неупорядоченность или потерю связи. К несчастью, программисты часто игнорируют эти проблемы при разработке программ. Кроме того, поскольку программисты тестируют свои программы, используя надежные высокоскоростные локальные сети, тестирование может не выявить возможные ошибки. Таким образом, программы, использующие UDP и успешно работающие в локальной сети, будут аварийно завершаться в глобальных сетях TCP/IP. |
|
|
Aug 31 2006, 14:35
Сообщение
#4
|
|
Супер постер Группа: Global moder Сообщений: 994 Регистрация: 6.12.2005 Из: http://pauk.net.ru/ Пользователь №: 179 |
Пример 2. Using UDP connection Код <?php $fp = fsockopen("udp://127.0.0.1", 13, $errno, $errstr); if (!$fp) { echo "ERROR: $errno - $errstr<br />\n"; } else { fwrite($fp, "\n"); echo fread($fp, 26); fclose($fp); } ?> всегда выполняется то что после else неважно открыт такой порт на удаленной машине или нет... все уже перепробовал... -------------------- |
|
|
Aug 31 2006, 14:44
Сообщение
#5
|
|
N.N.G. Группа: Posters Сообщений: 292 Регистрация: 16.10.2005 Пользователь №: 103 |
такие наивные... .я это уже все 100 раз пробовал )) вы че думаете... я вообще нниче непробывал. в это то и проблема
Цитата Теперь проблема. для открытия тцп порта все нормально и правильно. Но когда и хочю проверить UDP порт. Он мне всегда выдает "OnLine" Прочитал много мануало, читал в нете. Ничего не помогло. едиственное отличие ТЦП и УДВ это время подключеия к порты. В книгах его вообще нет. единственный вариант как я считаю. Загнать в цикл(10-15 попыток), и если хотябы одна отлично от офф-ланйна то сервак он-дайн Сообщение отредактировал LLeSS - Aug 31 2006, 14:46 |
|
|
Aug 31 2006, 18:18
Сообщение
#6
|
|
Пользователь Группа: Posters Сообщений: 116 Регистрация: 22.5.2006 Из: Чебоксары Пользователь №: 616 |
Лучше проверять через определенный интервал (5 мин?) и записывать куда-нибудь, а в "Основная часть" оттуда читать...
Еще был какой-то Net_GameServerQuery в PEAR... PS. а stream_socket_client ? Сообщение отредактировал pavel - Aug 31 2006, 18:43 |
|
|
Aug 31 2006, 19:38
Сообщение
#7
|
|
Супер постер Группа: Global moder Сообщений: 994 Регистрация: 6.12.2005 Из: http://pauk.net.ru/ Пользователь №: 179 |
у нас PHP 4, а это как я помню появилось только в пятой версии, ща проверю на др. компе, там 5-ая, посмотрим че полчится...
-------------------- |
|
|
Aug 31 2006, 19:53
Сообщение
#8
|
|
Пользователь Группа: Posters Сообщений: 116 Регистрация: 22.5.2006 Из: Чебоксары Пользователь №: 616 |
Там серваки поддерживаются вплоть до такого:
Код require_once 'Net\GameServerQuery\Protocol.php'; class Net_GameServerQuery_Protocol_Quake2 extends Net_GameServerQuery_Protocol { } так что можно и поэксперементировать... Хотя если залезть в Communicate.php, то можно понять, что чуваки приступ гениальности еще не успели словить, и попытаться сделать что-нибудь подобное но по своему Сообщение отредактировал pavel - Aug 31 2006, 19:54 |
|
|
Aug 31 2006, 20:35
Сообщение
#9
|
|
PAUK.NET.RU TEAM Группа: Admin Сообщений: 1,672 Регистрация: 11.7.2005 Из: Чебоксары Пользователь №: 1 |
надо проверять не только соединение по определенному порту, а "общаться с сервером".
-------------------- |
|
|
Aug 31 2006, 21:20
Сообщение
#10
|
|
Пользователь Группа: Posters Сообщений: 116 Регистрация: 22.5.2006 Из: Чебоксары Пользователь №: 616 |
надо проверять не только соединение по определенному порту, а "общаться с сервером". К несчастью, разработчики игр не любят, чтобы всякие левые чуваки из скритов "общались" с их серваками.... Net_GameServerQuery всякие статусы вроде возвращает для Quake3, HL2, UT3, Doom3, Battlefield, но не NFS, Warcraft или WoW. В версии с pear.net почему-то не вся поддержка, но в altavista.com можно найти... (а в гугле нельзя, гы ) Сообщение отредактировал pavel - Aug 31 2006, 22:49 |
|
|
Sep 1 2006, 00:14
Сообщение
#11
|
|
PAUK-NET.RU TEAM Группа: Admin Сообщений: 4,715 Регистрация: 11.7.2005 Из: ЮЗР Пользователь №: 3 |
Никогда не понимал чудаков, которые задают вопросы и не читают ответы.
|
|
|
Sep 1 2006, 00:32
Сообщение
#12
|
|
Пользователь Группа: Posters Сообщений: 116 Регистрация: 22.5.2006 Из: Чебоксары Пользователь №: 616 |
честно говоря ответов типа "PHP4 forever" или "и в параллель без интеграции с апачем 5-ю версию мы поставить не можем, типа чтобы чисто по расписанию запускать и в БД записывать" я не услышал... уж извините, если нафлудил, больше не буду
|
|
|
Sep 1 2006, 00:49
Сообщение
#13
|
|
PAUK-NET.RU TEAM Группа: Admin Сообщений: 4,715 Регистрация: 11.7.2005 Из: ЮЗР Пользователь №: 3 |
Во всей теме только два попадания - пост #3 (который вообще был проигнорирован тредстартером) и пост #9. Был бы это специализированный форум - все остальные посты были бы разумно снесены в топку как абсолютно бессмысленные.
При чём ведь даже в мануале сказано Цитата(http://php.net/fsockopen @ Warning) UDP sockets will sometimes appear to have opened without an error, even if the remote host is unreachable. The error will only become apparent when you read or write data to/from the socket. The reason for this is because UDP is a "connectionless" protocol, which means that the operating system does not try to establish a link for the socket until it actually needs to send or receive data. Но мануалы у нас даже если и читают, то дальше примеров не идут
|
|
|
Sep 1 2006, 09:56
Сообщение
#14
|
|
Пользователь Группа: Posters Сообщений: 116 Регистрация: 22.5.2006 Из: Чебоксары Пользователь №: 616 |
мануалы у нас даже если и читают, то дальше примеров не идут 3-й - вообще не ответ и поставленной проблеммы не решает (намек на то, что это проблемма неразрешимая? но люди ж вроде как-то решали) 9-й - скорее пожелание а из 6-го не должно было стать понятно, что для решения поставленной проблеммы используется такая-то функция, а если надо больше (типа "общение"), то используется такая-то библиотека ? ты кстати сам-то понял че спросили? LLeSS, хотелось бы услышать твое мнение Был бы это специализированный форум - все остальные посты были бы разумно снесены в топку как абсолютно бессмысленные. лоснования? опыт? если бы в форуме писали только ответы вроде 3-го и 9-го, то и задавать в него вопросы осбого смысла бы не было: иди сразу в мануал, там нет - иди в гугл, там нет - значит этого вообще нет и не задавай глупых вопросов мануалы у нас даже если и читают, то дальше примеров не идут ты не по себе судишь, нет? или ты считаешь, что здесь должны только нечитающие писать (чтобы ты перед ними выделывался в стиле "прочитай здесь" или "этот вопрос от слишком буйной фантазии") |
|
|
Sep 1 2006, 10:12
Сообщение
#15
|
|
PAUK-NET.RU TEAM Группа: Admin Сообщений: 4,715 Регистрация: 11.7.2005 Из: ЮЗР Пользователь №: 3 |
или ты считаешь, что здесь должны только нечитающие писать (чтобы ты перед ними выделывался в стиле "прочитай здесь" или "этот вопрос от слишком буйной фантазии") Если ты из лоботрясов - ты мне не интересен и можешь не утруждать себя вниманием ко мне
|
|
|
Sep 1 2006, 10:15
Сообщение
#16
|
|
PAUK.NET.RU TEAM Группа: Admin Сообщений: 1,672 Регистрация: 11.7.2005 Из: Чебоксары Пользователь №: 1 |
3-й - вообще не ответ и поставленной проблеммы не решает (намек на то, что это проблемма неразрешимая? но люди ж вроде как-то решали) Это намек, что нужно читать RFC протокола и RFC сервера, прежде чем их использовать. 9-й - скорее пожелание Это дельный совет из личного опыта основания? опыт? если бы в форуме писали только ответы вроде 3-го и 9-го, то и задавать в него вопросы осбого смысла бы не было: иди сразу в мануал, там нет - иди в гугл, там нет - значит этого вообще нет и не задавай глупых вопросов В сказку попал ??? Вот мне лично лень, открывать мануал, сделать Ctrl C, потом вернуться на форум и сделать Ctrl V, тратить трафик на поиск более конкретного ответа, вот ссылку дать могу. Кому надо, тот найдет, достаточно дать правильное направление. -------------------- |
|
|
Sep 1 2006, 11:33
Сообщение
#17
|
|
Пользователь Группа: Posters Сообщений: 116 Регистрация: 22.5.2006 Из: Чебоксары Пользователь №: 616 |
Если ты из лоботрясов - ты мне не интересен и можешь не утруждать себя вниманием ко мне Вспоминается старая заморская реклама правил дорожного движения, где маленькая девочка говорит "сбейте меня на скорости в 30 км/ч, и я максимум сломаю ногу, сбейте меня на скорости 90 км/ч и шансов выжить у меня будет 1 из 100". Спасибо, кстати, что ты утрудил себя вниманием ко мне. |
|
|
Sep 1 2006, 14:36
Сообщение
#18
|
|
N.N.G. Группа: Posters Сообщений: 292 Регистрация: 16.10.2005 Пользователь №: 103 |
вы непоняли вопрос? я бы хотел получить в итоге работоспособный скрипт. В этом скрипте у меня работает тока 50%(TCP) из 10 попытток 1 ложная. Остальные 50% (UDP) он всегда выдает положительный ответ. и ненадо влудить. типа ты нуб иди почитай книгу, иди в гугл, иди тудато смотри тото. Если вы незнаете, нехотите то непишите. Я ни одного ответа неуслышал как мне сделать работоспособный скрипт. тока советы и цепляние к словам.
|
|
|
Sep 1 2006, 14:54
Сообщение
#19
|
|
PAUK-NET.RU TEAM Группа: Admin Сообщений: 4,715 Регистрация: 11.7.2005 Из: ЮЗР Пользователь №: 3 |
Жжошь.
Я пожалуй последний раз скажу - если человек не читает ответов - отвечать ему смысла нет. |
|
|
Sep 1 2006, 18:23
Сообщение
#20
|
|
N.N.G. Группа: Posters Сообщений: 292 Регистрация: 16.10.2005 Пользователь №: 103 |
Никогда не понимал чудаков, которые задают вопросы и не читают ответы. Оскорбляешь... и не говоришь конкретного ответа Если ты из лоботрясов - ты мне не интересен и можешь не утруждать себя вниманием ко мне опять оскорбляешь и ничего толкового вы непоняли вопрос? я бы хотел получить в итоге работоспособный скрипт. В этом скрипте у меня работает тока 50%(TCP) из 10 попытток 1 ложная. Остальные 50% (UDP) он всегда выдает положительный ответ. и ненадо влудить. типа ты нуб иди почитай книгу, иди в гугл, иди тудато смотри тото. Если вы незнаете, нехотите то непишите. Я ни одного ответа неуслышал как мне сделать работоспособный скрипт. тока советы и цепляние к словам. ПО русски написал Жжошь. Я пожалуй последний раз скажу - если человек не читает ответов - отвечать ему смысла нет. Не строй из себя крутого чувака. Молодец если знаешь. На деле помочь неможешь... помолчи |
|
|
Текстовая версия | Сейчас: 28th April 2024 - 05:41 |