![]() |
Модераторы: skyboy, MoLeX, Aliance, ksnk |
![]() ![]() ![]() |
|
VoAnt |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 209 Регистрация: 9.4.2004 Где: Украина г. Киев Репутация: -1 Всего: 2 |
Профи вопрос к ВАМ!
Ситуация: в сеть подключено 4 компьютера на каждом из них периодически запускается игровой сервер ... нууу например StarCraft-а Старик использует 6111 и 6112 порты по UDP Вопрос: Каким образом с помощью PHP подключиться к UDP портам ( 6111 или 6112 ) и получить от них какой-то ответ однозначно идентифицирующий сервис, который их открыл? ![]() Грабли: ![]() Я пробовал подключаться так:
но не зависимо от того запущен ли StarCraft - сервер, появляется всегда "ОК" Я думаю это потому, что UDP не требует подтверждения получения пакета. Поэтому нужно не просто подключатся а опрашивать порт. КАК ЭТО ДЕЛАТЬ??? жду ответов спасибо ... |
|||
|
||||
penizillin |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 312 Регистрация: 10.11.2004 Репутация: 8 Всего: 9 |
опечатка? Это сообщение отредактировал(а) penizillin - 21.11.2004, 18:21 |
|||
|
||||
Chuck |
|
|||
![]() Сушня ![]() ![]() Профиль Группа: Эксперт Сообщений: 442 Регистрация: 12.12.2003 Где: Узбекистан, Ташке нт Репутация: нет Всего: 9 |
C http://www.php.net/fsockopen ....
Example 2. Using UDP connection
Думаю, разберешься! |
|||
|
||||
penizillin |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 312 Регистрация: 10.11.2004 Репутация: 8 Всего: 9 |
да нет, соединяется он правильно. просто в случае соединения к udp порту случая (!fp) у него не будет.
нужно знать протокол игры, чтобы знать, что послать на порт, и как разобрать ответ. для этого google.com хватит. |
|||
|
||||
VoAnt |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 209 Регистрация: 9.4.2004 Где: Украина г. Киев Репутация: -1 Всего: 2 |
ДА .. там в моём коде Очепятка
![]() .... кстати я пробовал этот код
------- ВИСНЕТ НАГЛУХО!!! ![]() если fread($fp, 1); пишет всё ок, если > 1 .. наглухо! А что собстно искать в гугле??? ну хоть пример запроса подскажите плз |
|||
|
||||
VoAnt |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 209 Регистрация: 9.4.2004 Где: Украина г. Киев Репутация: -1 Всего: 2 |
Еще хотел спросить..
Есть ли програмки какими можно перехватить сообщение от клиента (игрового) т.е. StarCraft клиент ведь что-то посылает StarCraft серверу и получает ответ? КАК ЭТО ЧТО-ТО ПЕРЕХВАТИТЬ? |
|||
|
||||
penizillin |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 312 Регистрация: 10.11.2004 Репутация: 8 Всего: 9 |
конечно виснет, данных ждет.
перехватить траффик можно любым сниффером, который этот порт слушает. только разобраться в бинарных данных без спецификации протокола, наверное, не получится. а поискать в гугле можно, например, open-source утилитки, которые умеют общаться с серверами sc. в них можно запросы подглядеть. |
|||
|
||||
IZ@TOP |
|
|||
![]() Панда-бир! ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 4795 Регистрация: 3.2.2003 Где: Бамбуковый лес Репутация: 44 Всего: 73 |
VoAnt, а что если fgets попробовать?
PS На последний вопрос могу сказать только то что существует множество программ которые перехватывают траффик посылаемый от одного компьютера к другому (называются они sniffer'ами... вроде так). Google or Yandex тебе помогут. -------------------- Один из розовых плюшевых-всадников апокалипсиса... очень злой... Семь кругов ада для новых элементов языка Мои разрозненные мысли |
|||
|
||||
VoAnt |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 209 Регистрация: 9.4.2004 Где: Украина г. Киев Репутация: -1 Всего: 2 |
Да спасибо... снифер скачал...
![]() ![]() ![]() Если кому не лень помочь в поиске таких "спецификаций" например для SC, CS, ... прошу помочь! Зарание благодарен! VoAnt ![]() Добавлено @ 17:33 ДАВАЙТЕ ИСКАТЬ ВМЕСТЕ |
|||
|
||||
@tom |
|
|||
Unregistered |
люди, ну чё ? чтонить у вас получилось ? просто у мя щас такаяже трабла
![]() если есть у когонить код - поделитесь плиз ;) я правда ламер в этом деле, но вот такая идея.... а что если отправить запрос и просто вывести результат по тому, получен ли ответ или нет ( тоесть по факту ответа, и ненадо его расшифровывать...) ?? ![]() |
|||
|
||||
Eugene Glova |
|
|||
Unregistered |
<?php
$server = "192.168.1.1"; $fp = fsockopen("udp://".$server, 27015, $err1, $err2, 1); if ($fp){ $string = "infostring"; // "info", "infostring", "details", "players" and "rules" fputs($fp, chr(255).chr(255).chr(255).chr(255).$string); socket_set_timeout($fp,1,0); echo fgets($fp); }else{ echo "No connection to server"; } |
|||
|
||||
![]() ![]() ![]() |
Правила форума "PHP" | |
|
Новичкам:
Важно:
Внимание:
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, IZ@TOP, skyboy, SamDark, MoLeX, awers. |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | PHP: Общие вопросы | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |