![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Передача UDP [D7, WinXP]
Hans_Cristian © (2006-03-09 16:42:00)Всем привет. Есть UDP-сервер, пытаюсь передать с него данные. При посылке почему-то датаграмма урезается на 14 байт. Пробовал и через IdUDPServer, и через RAW-сокеты. Вот последний вариант:
recvfrom(sck,buf,100,0,fa,fal);
s:='Длинная строка, которую пытаюсь передать через UDP на клиента';
if sendto(sck,s[1],length(s),0,fa,sizeof(fa))<>length(s) then Application.MessageBox('Мало!','!',mb_ok);
Причем MessageBox не всплывает, т.е строка передается вся. Однако на клиента последние 14 байт не приходят. Это у меня руки кривые или с сокетами проблема?
Hans_Cristian (2006-03-10 17:51:00) [1]Спасибо.
Piter (2006-03-10 17:25:00) [2]Ethereal
Hans_Cristian (2006-03-10 17:03:00) [3]Виноват. Готов искупить свою вину пивом :) Но в общем-то так и было - пишу эмулятор сервера для сторонней проги, посмотрел сначала, что сниф показывает, потом загнал это в свою прогу...
Вопрос о проверенном снифе остается открытым.
Piter (2006-03-10 16:31:00) [4]Hans_Cristian (10.03.06 16:16) [7]
Ориентировался на результаты, полученные сниффером
вот так всегда и бывает. Сначала ложь:
Hans_Cristian (10.03.06 9:02) [5]
Висит клиент, рядом - сниффер. Оба показывают одно и то же
типа умный такой - "ну не может же снифер ошибаться. Чтобы не было разговоров лишних, скажу что везде так показывается, дело явно не в снифере"...
Hans_Cristian (2006-03-10 16:16:00) [5]Разобрался. Ориентировался на результаты, полученные сниффером, а он, зараза такая, из длины пакета как раз размер Ethernet-заголовка и вычитал. И показывал пакет без хвоста :(
Кстати, может кто сниффер порекомендует проверенный? :)
Piter (2006-03-10 15:42:00) [6]приводи тогда код полностью
Hans_Cristian (2006-03-10 09:02:00) [7]
> Не надо тут никаких RAW.
А как еще? Думал, Инди глючит, попрбовл так... Та же фигня :(
> Магия чисел, однако....
Угу. Тоже обратил на это внимание. Однако что делать?
> а сам то как думаешь? :)
Подозреваю, что руки :) Наставьте на путь истинный.
> проблема в в коде приемки со стороны клиента.
Дык, это... Висит клиент, рядом - сниффер. Оба показывают одно и то же.
GanibalLector (2006-03-10 01:40:00) [8]> Пробовал и через IdUDPServer, и через RAW-сокеты. Вот последний вариант
Так ..так. А при чем тут RAW??? Ты что подмену IP делаешь? Не надо тут никаких RAW.
Verg (2006-03-09 23:02:00) [9]
> Piter © (09.03.06 22:53) [2]
Я бы вообще не обратил внимания, если бы не четырнадцать. Понимаешь, - sizeof( struct ether_header ) Магия чисел, однако....
Piter (2006-03-09 22:53:00) [10]Hans_Cristian (09.03.06 16:42)
Это у меня руки кривые или с сокетами проблема?
а сам то как думаешь? :)
Если до клиента вообще хоть часть строки доходит, то включив телепатию можно предположить, что проблема в в коде приемки со стороны клиента.
Verg (2006-03-09 20:36:00) [11]Смотря как принимает (правильно ли) клиент, насколько та сторка "длинная"... и т.д.