Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
Форум программистов > Delphi: Сети > Поиск игровых серверов.Отправка пакетов. |
Автор: XfroSt 7.12.2006, 20:15 | ||||||
Доброе время суток! Решил написать программу для поиска игровых серверов. Я понимаю что таких тем в форумах скопилось много, но меня интересуют конкретные вопросы. Кто разбирается в UDP и снифферах прошу помоч и ответить. Мне надо "зацепиться" за технологию определния. Итак. что я делаю. 1. Прошу запустить человека игровой сервер в локалке. 2. Включаю сниффер (предварительно определив какие порты использует игра через НетВью к примеру, в данном примере используется порт 8889 на прием и передачу) 3. Запускаю у себя клиент игры переключаюсь в сниффер и вижу, что с меня уходит широковещательных пакет. ![]() Как видно из скиншота пакет длинной 13 байт и его содержание : 'Ãâ.=÷*<' в ответ сервер присылает другой пакет с инфой : ![]() все вроде ясно. кидаю на форму дельфи компонент. IdUDPServer1 кнопу и мемо в кнопке пишу следующие
в обработчике IdUDPServer1UDPRead
далее выключаю свою клиентскую игру, что бы не было конфликтов сокетов UDP запускаю программу дельфи жму кнопку В мемо приходит тока мой запроос : 'Ответ сервера : : Aa.=?*<' сниффер показывает следующие: ![]() т.е. пакет другой длинны в 15 а не в 13 байт. Вопросы! 2. Как можно просто повторить пакет в дельфи ? т.е. как можно в дельфи так же перехватить пакет, сохранить его и потом просто повторить ?
Если кто занет прошу ответить и прояснить мне эту тему. Есть программы которые мониторят сервера игр, но они видят не все игры, не поддерживают плагины и проч... Я пишу многофукциональную прогу для сети и поиск игровых серверов одна из ее возможносетй -поэтому хотелось бы разобраться в теме как следует. Заранее спасибо! |
Автор: XfroSt 8.12.2006, 16:16 | ||
С отправкой разобрался, а вот с приемом... Такая проблема, использую компонент TIdUDPServer отсылаю им широковещательный запрос. в ответ приходит ответ. читаю его так :
но вот в чем проблема сниффепром вижу что пришел пакет размером Length: 0x0051 (81); содержание пакета : 0x0000 00 16 17 B5 46 3E 00 13-D4 BE BC A7 08 00 45 00 ...µF>..O??§..E. 0x0010 00 65 73 EC 00 00 80 11-44 AD C0 A8 00 2F C0 A8 .esi..?.DA?./A? 0x0020 00 6F 69 87 69 87 00 51-F0 73 FF FF FF FF 49 07 .oi‡i‡.Q?syyyyI. 0x0030 53 61 6E 63 68 6F 00 63-73 5F 6D 61 6E 73 69 6F Sancho.cs_mansio 0x0040 6E 00 63 73 74 72 69 6B-65 00 43 6F 75 6E 74 65 n.cstrike.Counte 0x0050 72 2D 53 74 72 69 6B 65-3A 20 53 6F 75 72 63 65 r-Strike: Source 0x0060 00 F0 00 01 11 00 6C 77-00 00 31 2E 30 2E 30 2E .?....lw..1.0.0. 0x0070 32 38 00 28. len показывает размер 71 а в chb приходит только yyyyISancho пробовал увеличивать размер буфера udpserver не помогает! причем отладчим смотрю что chb не заполнена полностью тока начало дальше нули. Как получить остальное ? |