|
|
|
UDP Server иногда!!! не хочет принимать пакеты.
|
|||
|---|---|---|---|
|
#18+
Уважаемые форумчане, для приема пакетов UDP использую компонент IdUDPServer. Посылаю пакеты и через утилиту tcpdump вижу как они доходят. Запускаю мою бабалайку, и ИНОГДА бывает, что пакеты вообще не принимаются, но чаще всего принимаются. Создаю поток, в его Execute делаю Код: pascal 1. 2. 3. 4. 5. В самой процедуре Код: pascal 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. Далее само событие Код: pascal 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. Подскажите, в чем может быть причина? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.09.2018, 11:54 |
|
||
|
UDP Server иногда!!! не хочет принимать пакеты.
|
|||
|---|---|---|---|
|
#18+
"Я мог бы рассказать шутку про UDP, но она, возможно, до вас не дойдёт." (с) Вероятнее всего ты не успеваешь вычитать предыдущий пакет перед приходом нового. Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.09.2018, 12:05 |
|
||
|
UDP Server иногда!!! не хочет принимать пакеты.
|
|||
|---|---|---|---|
|
#18+
Dimitry Sibiryakov, я бы тогда просто терял часть пакетов или нет? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.09.2018, 12:08 |
|
||
|
UDP Server иногда!!! не хочет принимать пакеты.
|
|||
|---|---|---|---|
|
#18+
Меня удивляет, что ты хоть какие-то получаешь, но это, видимо, инди-магия. Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.09.2018, 12:12 |
|
||
|
UDP Server иногда!!! не хочет принимать пакеты.
|
|||
|---|---|---|---|
|
#18+
Dimitry Sibiryakov, почему? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.09.2018, 12:15 |
|
||
|
UDP Server иногда!!! не хочет принимать пакеты.
|
|||
|---|---|---|---|
|
#18+
cptngrbпочему? Поток, который ничего не делает, только спит в цикле - очень подозрителен. Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.09.2018, 12:30 |
|
||
|
UDP Server иногда!!! не хочет принимать пакеты.
|
|||
|---|---|---|---|
|
#18+
Dimitry Sibiryakov, так его задача запустить udp поток слушателя порта, а потом убить этот поток. Вы думаете, что он не дает udp потоку дышать? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.09.2018, 12:40 |
|
||
|
UDP Server иногда!!! не хочет принимать пакеты.
|
|||
|---|---|---|---|
|
#18+
Dimitry Sibiryakov, ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.09.2018, 12:56 |
|
||
|
UDP Server иногда!!! не хочет принимать пакеты.
|
|||
|---|---|---|---|
|
#18+
cptngrbтак его задача запустить udp поток слушателя порта, а потом убить этот поток. Вы думаете, что он не дает udp потоку дышать? Запускать поток чтобы тот запустил поток и убивать поток чтобы убить другой поток? Ух ты... И это всё вместо того, чтобы тупо в первом же созданном потоке вызвать одну функцию recv()... Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.09.2018, 13:05 |
|
||
|
UDP Server иногда!!! не хочет принимать пакеты.
|
|||
|---|---|---|---|
|
#18+
cptngrb, если ты выбрал udp - почему ты оказался не готов к потере пакетов? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.09.2018, 13:07 |
|
||
|
UDP Server иногда!!! не хочет принимать пакеты.
|
|||
|---|---|---|---|
|
#18+
Dimitry Sibiryakov, потому что recv() не знаю сколько ставить sleep (), а по событию не надо задумываться об этом ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.09.2018, 13:34 |
|
||
|
UDP Server иногда!!! не хочет принимать пакеты.
|
|||
|---|---|---|---|
|
#18+
Котовасия, я готов к потере, я не готов вообще ничего не получать ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.09.2018, 13:35 |
|
||
|
UDP Server иногда!!! не хочет принимать пакеты.
|
|||
|---|---|---|---|
|
#18+
cptngrbпотому что recv() не знаю сколько ставить sleep (), а по событию не надо задумываться об этом Угу, "можно не применять мозг". Дельфи, может, и не умирает, но вот мозг её пользователей определённо - того... АОТ: sleep() не нужен вообще. События приходят окну только в случае если поток, в котором оно создано, обрабатывает очередь событий. Именно поэтому я удивлён, что создание сервера в левом спящем потоке вообще работает. Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.09.2018, 13:40 |
|
||
|
UDP Server иногда!!! не хочет принимать пакеты.
|
|||
|---|---|---|---|
|
#18+
Dimitry Sibiryakov, если вы имеете ввиду, что sleep убрать из Execute будет лучше? А насчет того, что поток вызывает поток все очень просто. Сначала я ловил через WinSock сам как раз в цикле без доп. потоков, потом появилась задача и под линукс сделать, поэтому проще было взять indy и не забивать себе голову ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.09.2018, 13:53 |
|
||
|
UDP Server иногда!!! не хочет принимать пакеты.
|
|||
|---|---|---|---|
|
#18+
recv мне чем-то не понравился, уже не помню почему, может из-за хрен знает какой таймаут выставлять или еще чего ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.09.2018, 13:55 |
|
||
|
UDP Server иногда!!! не хочет принимать пакеты.
|
|||
|---|---|---|---|
|
#18+
а, вспомнил recv ждет пакета, и пока не дождется - висит (нет пакетов - завис), а если мне надо завершить работу, то что делать с recv? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.09.2018, 13:58 |
|
||
|
UDP Server иногда!!! не хочет принимать пакеты.
|
|||
|---|---|---|---|
|
#18+
cptngrbа если мне надо завершить работу, то что делать с recv? Ответ тривиален - закрыть сокет. recv() вывалится с ошибкой. PS: Под линуксом сокеты ничем не отличаются кроме отсутствия неоходимости инициализации. Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.09.2018, 14:04 |
|
||
|
UDP Server иногда!!! не хочет принимать пакеты.
|
|||
|---|---|---|---|
|
#18+
cptngrbа, вспомнил recv ждет пакета, и пока не дождется - висит (нет пакетов - завис), а если мне надо завершить работу, то что делать с recv? Выставляй таймаут или используй в отдельном треде. Или использовать событие "данные здесь": в обработчике данные уже получены, ждать не нужно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.09.2018, 14:07 |
|
||
|
UDP Server иногда!!! не хочет принимать пакеты.
|
|||
|---|---|---|---|
|
#18+
попробую, если и это не поможет, отпишусь. спасибо за советы ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.09.2018, 14:36 |
|
||
|
UDP Server иногда!!! не хочет принимать пакеты.
|
|||
|---|---|---|---|
|
#18+
cptngrb, Ещё довольно странная работа с буфером типа TIdBytes в процедуре OnRead. Не знаю, какая у вас версия Инди, но в последних, уже весьма давно, этот тип - динамический массив Array of bytes. Зачем у вас там New(), непонятно, достаточно объявить переменную и задать длину массива, что у вас делается. Кроме того динамический массив сам по себе неявный указатель и объявлять еще указатель на него нет необходимости. Разве что у вас древняя Инди, но тогда не работало бы Set!ength. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.09.2018, 15:51 |
|
||
|
UDP Server иногда!!! не хочет принимать пакеты.
|
|||
|---|---|---|---|
|
#18+
Указатель на указатель - согласен. А как без New добавлять в очередь? Я пойманный массив отправляю в очередь TQueue и в другом потоке работаю, а потом удаляю (Dispose). А без New AV вылетает ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.10.2018, 12:43 |
|
||
|
UDP Server иногда!!! не хочет принимать пакеты.
|
|||
|---|---|---|---|
|
#18+
cptngrb, А ничего, что UDP протокол в принципе не гарантирует доставку пакетов? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.10.2018, 15:09 |
|
||
|
UDP Server иногда!!! не хочет принимать пакеты.
|
|||
|---|---|---|---|
|
#18+
Квейд, не гарантирует где? я на одной машины отправляю и получаю пакеты ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.10.2018, 15:35 |
|
||
|
UDP Server иногда!!! не хочет принимать пакеты.
|
|||
|---|---|---|---|
|
#18+
cptngrbКвейд, не гарантирует где? я на одной машины отправляю и получаю пакеты Файрволл смотри, настройки сетевой карты. И все равно - никакой гарантии. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.10.2018, 15:40 |
|
||
|
|

start [/forum/topic.php?fid=58&msg=39710281&tid=2040288]: |
0ms |
get settings: |
7ms |
get forum list: |
14ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
156ms |
get topic data: |
8ms |
get forum data: |
2ms |
get page messages: |
53ms |
get tp. blocked users: |
1ms |
| others: | 230ms |
| total: | 477ms |

| 0 / 0 |
