Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 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.48 MB
Время: 0.014 c
9-87770
delpher
2002-06-17 23:14
2003.03.27
GLScene - самые азы


14-88141
cybermonk
2003-03-12 09:25
2003.03.27
Низкоуровневая запись-чтение с дискеты


7-88268
S.P.I.R.I.T
2003-02-03 19:27
2003.03.27
клавиатура и мышка


1-88069
Серега.Б
2003-03-16 03:12
2003.03.27
Разрешение экрана


14-88213
igor__
2003-03-11 14:37
2003.03.27
Физическая запись на дискету