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

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

Буфер UDP [Win95/98, NT4, Win2k]


s22_shura ©   (2002-12-15 20:19:00) 

Кто-нибудь на этой огромной планете знает как в Windows установить размер приёмного буфера выделяемого при создании UDP сокета?
MSDN по этому поводу отмалчивается :( , хотя по TCP/IP такую информацию даёт.
Опытным путём я определил примерный размер этого буфера ~8кб. Хотелось бы ешо увеличить. Наверняка это делается как и с TCP путём добавления соответствующих записей в реестр, но вот каких и куда.......??????????????


neodiX   (2003-02-05 19:11:00) [1]

используй indy компонент, там размер удп буфера меняется без проблем...


Ундервуд   (2003-02-05 15:21:00) [2]

Странно это всё кстати говоря... Когда я для проверки одного чата на NMUDP сделал бомбер и начал засыпать клиента пакетами, ну ограничась 65535 пакетами подряд, по килобайту каждый примерно, то клиент подвисал намертво на 2-3-5 минут, в зависимости от проца, но в конце концов все эти пакеты попадали по назначению.


Digitman   (2003-02-05 14:28:00) [3]

если лень переделывать, перехвати вызов своим процессом ф-ции socket() из ws2_32.dll, будет тебе и дескриптор)


-=Ventus=-   (2003-02-05 14:20:00) [4]

SetLength();


s22_shura   (2002-12-17 19:39:00) [5]

setsockopt ээто конечно клёво, но я и товарищу тому бы посоветовал для таких настроек ТСР как размеры пакетов и буферов и всего такого есть ключи в реестре. Выставил и всё ок, а для UDP не нашёл (в то чо их нет я не верю). Может найдётся умник - подскажет. Я уже всех продвинутых знакомых, среди которых есть сертифицированные Microsoft-ом, напряг, нои они ничё не нашли.

setsockopt ээто конечно клёво, но в моём случае всё сложнее. Я всё из начально делал на TNMUDP, и теперь если уж переделаю весь проект, то на ТСР наверное (ТАК НЕОХОТА!!! Всё Т А К работоло как часы.... пока на предельных нагрузках обмен не начался). Хотелось малой кровью попробовать увеличить буфер, а для setsockopt нужен дискриптор сокета, а у меня его нет :(


Sha   (2002-12-16 21:33:00) [6]

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-16 20:04:00) [7]

Уважаемый Sha, я не смог найти в форумах эту информацию :((((((((, но мне она очень необходима, а то ещё уволят ненароком :) , хотя это врятли, но уже 2 недели убиваюсь.
Проблемма в том, что прога, принимающая UDP сообщения их теряет из-за того, что указанный буфер переполняется. А переполняется он из-за того, что иногда прога наинает расчёты и некоторое время не хватает процессорного времени на извлечение из этого буфера.
Я тут ещё спрашивал про потоки - это всё одна и та-же проблемма, не знаю уже что делать.
Прежде чем бросаться всё переделывать на ТСР хотелось бы увеличить размер UDP буфера.
Я использую объект класса TNMUDP.
Одним словом - если можешь помочь с буфером буду очень благодарен.


Sha   (2002-12-15 20:33:00) [8]

Несколько дней назад обсуждали. Там все есть.


Наверх

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