![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
Участник клуба
Регистрация: 28.11.2007
Сообщений: 1,521
|
![]()
Всем привет! Я хотел написать программку для опроса сервера Half-life, но возникла проблема с приёмом ответа от сервера. Они принимается частично. Я использую компонент TNMUDP (пробовал просто на UDP сервере и через UDP клиент). Получается следующее:
Я отправляю команду (яяяяTSource Engine Query) игровому серверу и он в ответ на неё отправляет данные об игре, игроках и др. но они у меня принимаются частично, хотя на компьютер приходят полностью. Сканировал снифером. Так отправляю команду (яяяяTSource Engine Query) игровому серверу. =================================== =================================== ======== Packet ID: 384 TTL: 128 Packet size: 52 bytes type: UDP Source IP : 10.4.145.120: 34665 Destination IP : 10.4.134.251: 34665 ------------------------------ Packet dump ----------------------------------- 000000 45 00 00 34 A8 D3 00 00 | 80 11 65 6A 0A 04 91 78 E..4......ej...x 000010 0A 04 86 FB 69 87 69 87 | 00 20 41 6A FF FF FF FF ....i.i.. Aj.... 000020 54 53 6F 75 72 63 65 20 | 45 6E 67 69 6E 65 20 51 TSource Engine Q 000030 75 65 72 79 uery Такие данные приходят от сервера на мой компьютер, но из этого всего в программе считывается только строчка (яяяяm10.5.134.130:27015) и всё. Остальное не считывается… =================================== =================================== ======== Packet ID: 385 TTL: 126 Packet size: 128 bytes type: UDP Source IP : 10.4.134.251: 34665 Destination IP : 10.4.145.120: 34665 ------------------------------ Packet dump ----------------------------------- 000000 45 00 00 80 71 F2 00 00 | 7E 11 9D FF 0A 04 86 FB E...q...~....... 000010 0A 04 91 78 69 87 69 87 | 00 6C 6D BF FF FF FF FF ...xi.i..lm..... 000020 6D 31 30 2E 35 2E 31 33 | 34 2E 31 33 30 3A 32 37 m10.5.134.130:27 000030 30 31 35 00 48 61 6C 66 | 2D 4C 69 66 2D 2D 20 45 015.Half-Lif-- E 000040 78 74 72 69 6D 61 6C 2D | 2D 73 65 72 76 65 72 00 xtrimal--server. 000050 54 68 65 5F 62 65 61 63 | 68 00 76 61 6C 76 65 00 The_beach.valve. 000060 48 61 6C 66 2D 4C 69 66 | 65 00 02 18 2F 64 77 00 Half-Life.../dw. 000070 01 00 00 00 01 00 00 00 | 00 00 00 00 00 00 00 02 ................ Принимаю данные так: Код:
Всегда рад помочь!
|
![]() |
![]() |
![]() |
#2 |
Заблокирован
Регистрация: 27.05.2010
Сообщений: 1,099
|
![]()
> в чём может быть проблема
В тебе, конечно) Смотришь в книгу - видишь фигу) 000000 45 00 00 80 71 F2 00 00 | 7E 11 9D FF 0A 04 86 FB E...q...~....... 000010 0A 04 91 78 69 87 69 87 | 00 6C 6D BF FF FF FF FF ...xi.i..lm..... 000020 6D 31 30 2E 35 2E 31 33 | 34 2E 31 33 30 3A 32 37 m10.5.134.130:27 000030 30 31 35 00 48 61 6C 66 | 2D 4C 69 66 2D 2D 20 45 015.Half-Lif-- E Терминирующий ноль в дампе видишь ? ну вот тебе и ответ на вопрос) |
![]() |
![]() |
![]() |
#3 |
Участник клуба
Регистрация: 28.11.2007
Сообщений: 1,521
|
![]()
Тем же снифером. Полностью рабочая програ отправляет запрос:
=================================== =================================== ======== Packet ID: 36 TTL: 128 Packet size: 53 bytes type: UDP Source IP : 10.4.145.120: 28941 Destination IP : 10.4.134.251: 34665 ------------------------------ Packet dump ----------------------------------- 000000 45 00 00 35 E4 BA 00 00 | 80 11 29 82 0A 04 91 78 E..5......)....x 000010 0A 04 86 FB 0D 71 69 87 | 00 21 9D 7E FF FF FF FF .....qi..!.~.... 000020 54 53 6F 75 72 63 65 20 | 45 6E 67 69 6E 65 20 51 TSource Engine Q 000030 75 65 72 79 00 uery. Принимает ответ: =================================== =================================== ======== Packet ID: 37 TTL: 126 Packet size: 128 bytes type: UDP Source IP : 10.4.134.251: 34665 Destination IP : 10.4.145.120: 28941 ------------------------------ Packet dump ----------------------------------- 000000 45 00 00 80 B4 11 00 00 | 7E 11 5B E0 0A 04 86 FB E.......~.[..... 000010 0A 04 91 78 69 87 0D 71 | 00 6C 99 A7 FF FF FF FF ...xi..q.l...... 000020 6D 31 30 2E 35 2E 31 33 | 34 2E 31 33 30 3A 32 37 m10.5.134.130:27 000030 30 31 35 00 48 61 6C 66 | 2D 4C 69 66 2D 2D 20 45 015.Half-Lif-- E 000040 78 74 72 69 6D 61 6C 2D | 2D 73 65 72 76 65 72 00 xtrimal--server. 000050 63 72 6F 73 73 66 69 72 | 65 00 76 61 6C 76 65 00 crossfire.valve. 000060 48 61 6C 66 2D 4C 69 66 | 65 00 03 18 2F 64 77 00 Half-Life.../dw. 000070 01 00 00 00 01 00 00 00 | 00 00 00 00 00 00 00 02 ................ И как вы на это ответите? Тут всё работает и полностью принимается.
Всегда рад помочь!
|
![]() |
![]() |
![]() |
#4 |
Заблокирован
Регистрация: 27.05.2010
Сообщений: 1,099
|
![]()
> Тут всё работает и полностью принимается
Так это же ПОЛНОСТЬЮ РАБОЧАЯ прога, а не твоя ущербная) Та самая прога учитывает этот факт, а твоя не учитывает, потому и грабли) |
![]() |
![]() |
![]() |
#5 |
Участник клуба
Регистрация: 28.11.2007
Сообщений: 1,521
|
![]()
В том то и дело. Что я пытаюсь узнать как эту инфу принять целиком средствами Delphi, а не левыми программами?
Всегда рад помочь!
|
![]() |
![]() |
![]() |
#6 |
Заблокирован
Регистрация: 27.05.2010
Сообщений: 1,099
|
![]()
> как эту инфу принять целиком средствами Delphi
Такт ы ее целиком и принял строчкой UDP.ReadStream(msg) )) А дальше с какого-то перепугу пытаешься работать с принятым стримом как с ЦЕЛОЙ строкой, без единого символа-терминатора, хотя их там хренова туча и первый же встреченный терминатор означает для Lines.LoadFromStream конец строки ) |
![]() |
![]() |
![]() |
#7 | |
Участник клуба
Регистрация: 28.11.2007
Сообщений: 1,521
|
![]() Цитата:
![]()
Всегда рад помочь!
|
|
![]() |
![]() |
![]() |
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Обмен байтами через Udp | Dima DDM | Работа с сетью в Delphi | 8 | 03.01.2011 04:19 |
Delphi. Можно ли отправить данные через порт открытый другой программой? | losticsx | Помощь студентам | 2 | 24.08.2010 19:47 |
Получение команды на UDP порт и выполнение по ней действия | monty "2" | Работа с сетью в Delphi | 1 | 29.04.2010 23:35 |
как можно читать бинарные данные, через UDP? | b_gafurov | Работа с сетью в Delphi | 0 | 06.04.2009 15:15 |
UDP и данные | Shouldercannon | Работа с сетью в Delphi | 4 | 30.07.2008 09:12 |