Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

UDP [D5, WinME, Win2k]


LOM ©   (2002-01-18 22:45:00) 

Проблема вот в чем.
Нужно опросить сервак игры!
Включаю снифер, посылаю запрос(броадкаст) снифер пишет что пакет отправлен с порта например 1235 на порт 22222(сервака) если в сети есть сервак игры то приходит ответ на порт 1235!
UDP исползую Indy
В настросках указываю порт 22222 и шлю! А как узнать на какой порт придет ответ от сервака, так как он всегда разный!
И из-за етого неполучается получить ответ сервака!


LOM   (2002-01-24 13:20:00) [1]

Как я узнаю IP если я посылаю бродкаст!
Во вторых снифер показывает что пакет пришел!

??????????


Malder   (2002-01-23 20:54:00) [2]

LOM. Во первых, в событии OnDataReceived пишется с какого IP пришел пакет.
Во вторых, если OnDataReceived не выполняется, то значит пакет не приходил. Или пришел не на тот порт, который указан в LocalPort.


Malder   (2002-01-23 20:51:00) [3]

LOM. Во первых, в событии OnDataReceived пишется с какого IP пришел пакет.
Во вторых, если OnDataReceived не выполняется, то значит пакет не приходил. Или пришел не на тот порт, который указан в LocalPort.


Hecker   (2002-01-22 15:28:00) [4]

У меня тоже самое! :(


LOM   (2002-01-21 18:59:00) [5]

to Malder: Ето все понятно я так и делал, но во первых, как я узнаю IP сервака, если я посылаю броалкаст! Смотря на снифер я вижу что, мой покет отослан и пришел пакет от сервака, а OnDataRecived не получает упраление!? тоесть он на етот пакет не риагирует?? в чем дело??


Gunner   (2002-01-21 11:00:00) [6]

>Malder
Ты не видел Delphi6 ?? Инди официально включён туда и представляет достаточно большой набор компонент для работы с сетью !


Андрей Сенченко   (2002-01-20 17:34:00) [7]

Шутка :)
Достаточно большой и интересный набор компонент. Реальная ссылка:
http://www.nevrona.com/INDY/


Андрей Сенченко   (2002-01-20 17:30:00) [8]

http://www.indy.com/


Malder   (2002-01-20 15:28:00) [9]

LOM, мля. Описываю в деталях.
Есть компонент NMUDP1. Ставь там RemotePort 22222, LocalPort 12345, RemoteHost - IP сервака.
Посылать данные можно так:

nmudp1.SendBuffer(pch, i);//где pch:array[0..255] of char
//(например)

Принимать данные надо в событии OnDataReceived:

nmudp1.readbuffer(pch, numberbytes);

Вот и все. Элементарно. Можешь использовать потоки и соответственно sendstream и readstream, но это по желанию.

И скажи, что такое INDY ?


LOM   (2002-01-19 22:02:00) [10]

Вроде разобрался, но чета NMUDP не хочет принимать ответный пакет от сервера(млм я не могу?)??


Anatoly Podgoretsky   (2002-01-19 19:21:00) [11]

Это уже относится не к протоколу UDP а к протоколу обмена DNS, то же самое ты и описываешь про его задачу
Но с UDP еще и доставка не гарантируется


Malder   (2002-01-19 14:27:00) [12]

Во первых, Anatoly Podgoretsky, UDP не предусматривает ответа ? А что это за соединение, где "говорит" только одна сторона ? NUKE что ли ? =) Я согласен, что по протоколу UDP ответ не обязателен. НО и по TCP отвечать необязательно. А ведь посылая DNS запрос по UDP мы получаем ответ. А ?
Во вторых, LOM, я не совсем понял. То ли ты чайник, то ли чайник я и не понимаю вопроса. Судя по тому, что ты написал, сервак посылает ответ на тот порт, с которого пришел запрос. Соответственно, определить куда придет ответ очень просто. На тот порт с которого ты посылаешь.=)
Правда, ты пишешь "UDP использую Indy". Я не знаю, что такое Indy. По ходу, компонент, где не надо ставить адрес порта с которого посылается запрос. Гм. Тогда запусти снифер и посмотри с какого порта отсылает твой UDP-компонент пакеты. На тот порт и придет ответ. А лучше используй нормальный компонент (хоть стардартный дельфийский)

...фуууу...отписался....


LOM   (2002-01-19 13:57:00) [13]

Я это понимаю, но сервак то шлет UDP пакет на порт моего компа и ето порт всегда разный! и как его узнать??


Anatoly Podgoretsky   (2002-01-19 12:10:00) [14]

UDP не предусматривает получения какого либо ответа, это однонаправленный механизм.


Наверх

Титульная страница Поиск, карта сайта Написать письмо