|
|
|
Очень быстрый прием UDP пакетов
|
|||
|---|---|---|---|
|
#18+
Тестил на своей виртуальной машине компоненты ICS, Indy и стандартные WinSock (Win7-64, rio.1, win64) ICS и Indy плюс минус 2480 пакетов успевают поймать, через стандартный WinSock 4700 пакетов, а отправляю я 9000 пакетов WireShark ловит все 9000. Причем при получении пакета я ничего не делаю, кроме как увеличиваю кол-во принятых пакетов. Какими средствами вы пользуетесь? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.12.2019, 15:57 |
|
||
|
Очень быстрый прием UDP пакетов
|
|||
|---|---|---|---|
|
#18+
в Indy использую idUDPServer событие OnRead, в WinSock recv, в ICS взял демку с TWSocket ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.12.2019, 16:02 |
|
||
|
Очень быстрый прием UDP пакетов
|
|||
|---|---|---|---|
|
#18+
cptngr, какой размер пакета? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.12.2019, 16:40 |
|
||
|
Очень быстрый прием UDP пакетов
|
|||
|---|---|---|---|
|
#18+
s62, 1500 байт +- летят ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.12.2019, 16:41 |
|
||
|
Очень быстрый прием UDP пакетов
|
|||
|---|---|---|---|
|
#18+
defecator на чем-то писал видеосервис, не жаловался. :) может отметится... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.12.2019, 16:50 |
|
||
|
Очень быстрый прием UDP пакетов
|
|||
|---|---|---|---|
|
#18+
wadman, у него вроде на IOCP ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.12.2019, 17:04 |
|
||
|
Очень быстрый прием UDP пакетов
|
|||
|---|---|---|---|
|
#18+
cptngrbWireShark ловит все 9000. А на какой стороне этот WireShark? И ты бы это... код показал хотя бы для WinSock. А то окажется внезапно, что у тебя там ProcessMessages() в цикле... PS: И да, я никогда не использую UDP. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.12.2019, 17:07 |
|
||
|
Очень быстрый прием UDP пакетов
|
|||
|---|---|---|---|
|
#18+
Dimitry Sibiryakov, Код: 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. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45. 46. 47. 48. 49. 50. 51. 52. 53. 54. 55. 56. 57. 58. 59. 60. 61. 62. 63. 64. 65. 66. 67. 68. 69. 70. 71. 72. 73. 74. 75. 76. 77. 78. 79. 80. 81. 82. 83. 84. 85. 86. 87. 88. 89. 90. 91. 92. 93. 94. 95. 96. 97. 98. 99. 100. 101. 102. 103. 104. 105. 106. 107. 108. 109. 110. 111. 112. 113. 114. 115. 116. 117. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.12.2019, 17:19 |
|
||
|
Очень быстрый прием UDP пакетов
|
|||
|---|---|---|---|
|
#18+
Вангую переменную длину пакета, без указания/считывания этой длины в протоколе ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.12.2019, 17:19 |
|
||
|
Очень быстрый прием UDP пакетов
|
|||
|---|---|---|---|
|
#18+
cptngrb ICS и Indy плюс минус 2480 пакетов успевают поймать Indy наверняка доп. поток на каждый пакет заводят, а затем удаляют. А на это время требуется. Потоки создаются со скоростью примерно 10 тыс. в сек. С какой скоростью удаляются - не мерил. Там вроде можно пул потоков использовать. Не пробовали? Еще тормоза добавляет дельфёвый менеджер памяти - он не умеет паспараллеливаться по ядрам. Попробуйте потестировать на Лазарусе, тот умеет. Правда память будет ждать как паровоз. Но можно собрать из транка, там вроде проблему с пожиранием памяти устранили. Собирать нужно как 64-битное приложение, иначе упрётесь в нехватку виртуальной памяти. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.12.2019, 17:22 |
|
||
|
Очень быстрый прием UDP пакетов
|
|||
|---|---|---|---|
|
#18+
_Vasilisk_ Вангую переменную длину пакета, без указания/считывания этой длины в протоколе cptngrb Код: pascal 1. 2. 3. 4. 5. 6. 7. ТС, вы не пакеты тогда считайте, а прочитанные байты. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.12.2019, 17:25 |
|
||
|
Очень быстрый прием UDP пакетов
|
|||
|---|---|---|---|
|
#18+
DmSer, это все 64 бит. пул потоков использовать не пробовал. Что хоть это?)) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.12.2019, 17:26 |
|
||
|
Очень быстрый прием UDP пакетов
|
|||
|---|---|---|---|
|
#18+
_Vasilisk_, поподробнее, пожалуйста. чем это я не пакеты считаю? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.12.2019, 17:26 |
|
||
|
Очень быстрый прием UDP пакетов
|
|||
|---|---|---|---|
|
#18+
cptngrbDefBufferSize Чему равно? И на вопрос о расположении WireShark ты не ответил. Вполне возможно, что пакеты теряются уже при отправке из-за заполненности буферов системы, умолчательный размер которых как раз в районе суммы того, что приняло ICS. Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.12.2019, 17:27 |
|
||
|
Очень быстрый прием UDP пакетов
|
|||
|---|---|---|---|
|
#18+
_Vasilisk_ Вангую переменную длину пакета, без указания/считывания этой длины в протоколе я знаю, что пакеты не более 2кб, поэтому Recv(FSocket, Buffer, DefBufferSize , 0); ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.12.2019, 17:28 |
|
||
|
Очень быстрый прием UDP пакетов
|
|||
|---|---|---|---|
|
#18+
Dimitry Sibiryakov, DefBufferSize = 2000 WireShark там же где и моя бабалайка ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.12.2019, 17:29 |
|
||
|
Очень быстрый прием UDP пакетов
|
|||
|---|---|---|---|
|
#18+
_Vasilisk_вы не пакеты тогда считайте, а прочитанные байты. UDP пакеты не склеиваются и не дробятся. Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.12.2019, 17:30 |
|
||
|
Очень быстрый прием UDP пакетов
|
|||
|---|---|---|---|
|
#18+
cptngrb _Vasilisk_, поподробнее, пожалуйста. чем это я не пакеты считаю? Вам нужно считать число принятых байт и сравнивать с числом отправленных ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.12.2019, 17:30 |
|
||
|
Очень быстрый прием UDP пакетов
|
|||
|---|---|---|---|
|
#18+
cptngrb Причем при получении пакета я ничего не делаю ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.12.2019, 17:30 |
|
||
|
Очень быстрый прием UDP пакетов
|
|||
|---|---|---|---|
|
#18+
Dimitry Sibiryakov, еще проверял прекрасной утилитой Startrinity.NetWorkTester пакеты не теряются ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.12.2019, 17:30 |
|
||
|
Очень быстрый прием UDP пакетов
|
|||
|---|---|---|---|
|
#18+
Dimitry Sibiryakov UDP пакеты не склеиваются и не дробятся. И ты утверждаешь, что если в буфер сокета пришло два пакета по 1000 байт, то я не смогу их прочитать одним recv(... 2000...)? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.12.2019, 17:31 |
|
||
|
Очень быстрый прием UDP пакетов
|
|||
|---|---|---|---|
|
#18+
vavan, а как в потоке без try..except? а как тогда быть "использования управляемых типов что в плотных циклах"? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.12.2019, 17:32 |
|
||
|
Очень быстрый прием UDP пакетов
|
|||
|---|---|---|---|
|
#18+
_Vasilisk_, у меня сеть без маршрутизатора ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.12.2019, 17:33 |
|
||
|
Очень быстрый прием UDP пакетов
|
|||
|---|---|---|---|
|
#18+
с локалки на виртуалку ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.12.2019, 17:33 |
|
||
|
|

start [/forum/topic.php?fid=58&msg=39902744&tid=2038770]: |
0ms |
get settings: |
8ms |
get forum list: |
17ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
142ms |
get topic data: |
11ms |
get forum data: |
2ms |
get page messages: |
62ms |
get tp. blocked users: |
1ms |
| others: | 225ms |
| total: | 474ms |

| 0 / 0 |
