|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
|
Опции темы | Поиск в этой теме |
12.02.2013, 23:35 | #1 |
Белик Виталий :)
Старожил
Регистрация: 23.07.2007
Сообщений: 57,097
|
IDUDP. Package Size Too Big
Передаю мелкий пакет данных по UDP.
Сервер создаю так: Код:
Код:
Код:
udpBufSize равен 100-м. Проявляется ошибка Package Size Too Big. Не могу понять почему. Народец рекомендует не забыть про MTU. Что именно не забывать?
I'm learning to live...
|
13.02.2013, 00:37 | #2 |
Старожил
Регистрация: 30.12.2009
Сообщений: 11,430
|
Попробуйте точно указывать размер передаваемых данных:
sudp.BufferSize:=Length(s)*SizeOf(C har); |
13.02.2013, 07:03 | #3 |
Участник клуба
Регистрация: 07.12.2011
Сообщений: 1,025
|
на кой вообще BufferSize трогать?
Не стесняемся, плюсуем!
|
13.02.2013, 11:03 | #4 | |
Белик Виталий :)
Старожил
Регистрация: 23.07.2007
Сообщений: 57,097
|
Цитата:
I'm learning to live...
|
|
13.02.2013, 12:01 | #5 |
Участник клуба
Регистрация: 07.12.2011
Сообщений: 1,025
|
UDP спокойно 8к пакеты без фрагментации переваривает (при условии что настроено правильно). а по localhost все 64к
оставь по умолчанию... пусть само...
Не стесняемся, плюсуем!
|
13.02.2013, 12:40 | #6 |
Белик Виталий :)
Старожил
Регистрация: 23.07.2007
Сообщений: 57,097
|
Тогда откуда такая ошибка?
Может я на сервере неправильно выбираю эти данные? Выборки нет - буффер и переполняется... собсно в обработчике Код:
I'm learning to live...
|
13.02.2013, 14:46 | #7 | |
Форумчанин
Регистрация: 29.01.2013
Сообщений: 319
|
Цитата:
Последний раз редактировалось FataLL; 13.02.2013 в 14:54. |
|
13.02.2013, 15:46 | #8 |
Белик Виталий :)
Старожил
Регистрация: 23.07.2007
Сообщений: 57,097
|
Может...
Но тогда как поняти такую ситуацию: Бряк в этом событи срабатывает. Далее идет Код:
Но по прошествии где-то около 20-30 таких посылов бряк перестает работать, как будто срывается подключение. Т.е. как я понимаю - данные доходят, но накапливаются забивая какой-то буффер, из-за чего и происходит выкидыш в исключение типа этого или Message line is too long.
I'm learning to live...
|
13.02.2013, 17:30 | #9 |
Форумчанин
Регистрация: 29.01.2013
Сообщений: 319
|
Попробую.. :-)
Дело в том, что у тебя действительно через 20-30 посылов из 20-30 символов коротенький буфер в 100 переполняется, ибо ты его просто просматриваешь, но не освобождаешь. Попробуй на каждый бряк сделать RecieveBuffer |
13.02.2013, 18:50 | #10 |
Белик Виталий :)
Старожил
Регистрация: 23.07.2007
Сообщений: 57,097
|
RecieveBuffer будет ждать ответа в случае посыла данных. А я из сервера данные не посылаю. Я их только принимаю. Пока что все еще не расчехлился как в IDUdp работать
I'm learning to live...
|
|
Опции темы | Поиск в этой теме |
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Ошибка: String[1]: the Size property has an invalid size of 0. | mrChester | Базы данных (ADO.NET, LinqToSql, ORM Entity Framework, NHibernate) | 1 | 18.01.2012 20:06 |
[SIZE="4"]Найти максимальное число y Delphi[/SIZE] | Артем1904 | Помощь студентам | 5 | 16.12.2011 10:22 |
Резиновый font-size, Как сделать резионвый font-size в блоке? | AlienNation | HTML и CSS | 0 | 26.09.2011 09:14 |
Передавать большие файлы через IdUDP | SoftKoc | Работа с сетью в Delphi | 6 | 20.11.2010 14:05 |