Текущий архив: 2003.03.27;
Скачать: CL | DM;
ВнизБуфер UDP Найти похожие ветки
← →
s22_shura (2002-12-15 20:19) [0]Кто-нибудь на этой огромной планете знает как в Windows установить размер приёмного буфера выделяемого при создании UDP сокета?
MSDN по этому поводу отмалчивается :( , хотя по TCP/IP такую информацию даёт.
Опытным путём я определил примерный размер этого буфера ~8кб. Хотелось бы ешо увеличить. Наверняка это делается как и с TCP путём добавления соответствующих записей в реестр, но вот каких и куда.......??????????????
← →
Sha (2002-12-15 20:33) [1]Несколько дней назад обсуждали. Там все есть.
← →
s22_shura (2002-12-16 20:04) [2]Уважаемый Sha, я не смог найти в форумах эту информацию :((((((((, но мне она очень необходима, а то ещё уволят ненароком :) , хотя это врятли, но уже 2 недели убиваюсь.
Проблемма в том, что прога, принимающая UDP сообщения их теряет из-за того, что указанный буфер переполняется. А переполняется он из-за того, что иногда прога наинает расчёты и некоторое время не хватает процессорного времени на извлечение из этого буфера.
Я тут ещё спрашивал про потоки - это всё одна и та-же проблемма, не знаю уже что делать.
Прежде чем бросаться всё переделывать на ТСР хотелось бы увеличить размер UDP буфера.
Я использую объект класса TNMUDP.
Одним словом - если можешь помочь с буфером буду очень благодарен.
← →
Sha (2002-12-16 21:33) [3]2 s22_shura (16.12.02 20:04)
Если кто-то ест процессор, поможет только внутренняя нумерация пакетов и перезапрос в случае их потери.
А ссылка вот:
http://delphi.mastak.ru/cgi-bin/forum.pl?look=1&id=1039282160&n=4
← →
s22_shura (2002-12-17 19:39) [4]setsockopt ээто конечно клёво, но я и товарищу тому бы посоветовал для таких настроек ТСР как размеры пакетов и буферов и всего такого есть ключи в реестре. Выставил и всё ок, а для UDP не нашёл (в то чо их нет я не верю). Может найдётся умник - подскажет. Я уже всех продвинутых знакомых, среди которых есть сертифицированные Microsoft-ом, напряг, нои они ничё не нашли.
setsockopt ээто конечно клёво, но в моём случае всё сложнее. Я всё из начально делал на TNMUDP, и теперь если уж переделаю весь проект, то на ТСР наверное (ТАК НЕОХОТА!!! Всё Т А К работоло как часы.... пока на предельных нагрузках обмен не начался). Хотелось малой кровью попробовать увеличить буфер, а для setsockopt нужен дискриптор сокета, а у меня его нет :(
← →
-=Ventus=- (2003-02-05 14:20) [5]SetLength();
← →
Digitman (2003-02-05 14:28) [6]если лень переделывать, перехвати вызов своим процессом ф-ции socket() из ws2_32.dll, будет тебе и дескриптор)
← →
Ундервуд (2003-02-05 15:21) [7]Странно это всё кстати говоря... Когда я для проверки одного чата на NMUDP сделал бомбер и начал засыпать клиента пакетами, ну ограничась 65535 пакетами подряд, по килобайту каждый примерно, то клиент подвисал намертво на 2-3-5 минут, в зависимости от проца, но в конце концов все эти пакеты попадали по назначению.
← →
neodiX (2003-02-05 19:11) [8]используй indy компонент, там размер удп буфера меняется без проблем...
Страницы: 1 вся ветка
Текущий архив: 2003.03.27;
Скачать: CL | DM;
Память: 0.46 MB
Время: 0.008 c