Форум: "Сети";
Текущий архив: 2002.04.08;
Скачать: [xml.tar.bz2];
ВнизUDP Найти похожие ветки
← →
LOM (2002-01-18 22:45) [0]Проблема вот в чем.
Нужно опросить сервак игры!
Включаю снифер, посылаю запрос(броадкаст) снифер пишет что пакет отправлен с порта например 1235 на порт 22222(сервака) если в сети есть сервак игры то приходит ответ на порт 1235!
UDP исползую Indy
В настросках указываю порт 22222 и шлю! А как узнать на какой порт придет ответ от сервака, так как он всегда разный!
И из-за етого неполучается получить ответ сервака!
← →
Anatoly Podgoretsky (2002-01-19 12:10) [1]UDP не предусматривает получения какого либо ответа, это однонаправленный механизм.
← →
LOM (2002-01-19 13:57) [2]Я это понимаю, но сервак то шлет UDP пакет на порт моего компа и ето порт всегда разный! и как его узнать??
← →
Malder (2002-01-19 14:27) [3]Во первых, Anatoly Podgoretsky, UDP не предусматривает ответа ? А что это за соединение, где "говорит" только одна сторона ? NUKE что ли ? =) Я согласен, что по протоколу UDP ответ не обязателен. НО и по TCP отвечать необязательно. А ведь посылая DNS запрос по UDP мы получаем ответ. А ?
Во вторых, LOM, я не совсем понял. То ли ты чайник, то ли чайник я и не понимаю вопроса. Судя по тому, что ты написал, сервак посылает ответ на тот порт, с которого пришел запрос. Соответственно, определить куда придет ответ очень просто. На тот порт с которого ты посылаешь.=)
Правда, ты пишешь "UDP использую Indy". Я не знаю, что такое Indy. По ходу, компонент, где не надо ставить адрес порта с которого посылается запрос. Гм. Тогда запусти снифер и посмотри с какого порта отсылает твой UDP-компонент пакеты. На тот порт и придет ответ. А лучше используй нормальный компонент (хоть стардартный дельфийский)
...фуууу...отписался....
← →
Anatoly Podgoretsky (2002-01-19 19:21) [4]Это уже относится не к протоколу UDP а к протоколу обмена DNS, то же самое ты и описываешь про его задачу
Но с UDP еще и доставка не гарантируется
← →
LOM (2002-01-19 22:02) [5]Вроде разобрался, но чета NMUDP не хочет принимать ответный пакет от сервера(млм я не могу?)??
← →
Malder (2002-01-20 15:28) [6]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 ?
← →
Андрей Сенченко (2002-01-20 17:30) [7]http://www.indy.com/
← →
Андрей Сенченко (2002-01-20 17:34) [8]Шутка :)
Достаточно большой и интересный набор компонент. Реальная ссылка:
http://www.nevrona.com/INDY/
← →
Gunner (2002-01-21 11:00) [9]>Malder
Ты не видел Delphi6 ?? Инди официально включён туда и представляет достаточно большой набор компонент для работы с сетью !
← →
LOM (2002-01-21 18:59) [10]to Malder: Ето все понятно я так и делал, но во первых, как я узнаю IP сервака, если я посылаю броалкаст! Смотря на снифер я вижу что, мой покет отослан и пришел пакет от сервака, а OnDataRecived не получает упраление!? тоесть он на етот пакет не риагирует?? в чем дело??
← →
Hecker (2002-01-22 15:28) [11]У меня тоже самое! :(
← →
Malder (2002-01-23 20:51) [12]LOM. Во первых, в событии OnDataReceived пишется с какого IP пришел пакет.
Во вторых, если OnDataReceived не выполняется, то значит пакет не приходил. Или пришел не на тот порт, который указан в LocalPort.
← →
Malder (2002-01-23 20:54) [13]LOM. Во первых, в событии OnDataReceived пишется с какого IP пришел пакет.
Во вторых, если OnDataReceived не выполняется, то значит пакет не приходил. Или пришел не на тот порт, который указан в LocalPort.
← →
LOM (2002-01-24 13:20) [14]Как я узнаю IP если я посылаю бродкаст!
Во вторых снифер показывает что пакет пришел!
??????????
Страницы: 1 вся ветка
Форум: "Сети";
Текущий архив: 2002.04.08;
Скачать: [xml.tar.bz2];
Память: 0.47 MB
Время: 0.006 c