|
|
|
Установить таймаут сокета
|
|||
|---|---|---|---|
|
#18+
Есть набор клиентских асинхронных сокетов. Нужно закрывать сокет, если по нем не было активности в течение определенного времени. Можно это реализовать средствами самого WinSock? Или нужно к каждому сокету создавать свой WaitableTimer? С уважением, Vasilisk ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.10.2020, 14:06 |
|
||
|
Установить таймаут сокета
|
|||
|---|---|---|---|
|
#18+
Это зависит от того как у тебя реализована "асинхронность" сокетов. В наихудшем случае одного таймера на все должно быть достаточно. Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.10.2020, 14:18 |
|
||
|
Установить таймаут сокета
|
|||
|---|---|---|---|
|
#18+
Dimitry Sibiryakov как у тебя реализована "асинхронность" сокетов ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.10.2020, 14:20 |
|
||
|
Установить таймаут сокета
|
|||
|---|---|---|---|
|
#18+
_Vasilisk_один WaitForMultipleObjects Тогда и таймер тебе не нужен. Просто когда в этом же цикле пробегаешь по списку объектов, ища сработавший - пристреливай неактивные сокеты. Особая точность там не нужна. Ну и таймаут в WaitForMultipleObjects поставить чтобы не тормозить при абсолютно полной неактивности. Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.10.2020, 14:30 |
|
||
|
Установить таймаут сокета
|
|||
|---|---|---|---|
|
#18+
Dimitry Sibiryakov Тогда и таймер тебе не нужен. Спасибо ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.10.2020, 19:06 |
|
||
|
Установить таймаут сокета
|
|||
|---|---|---|---|
|
#18+
_Vasilisk_Таки придется программировать. Кстати, ты же в курсе, что WaitForMultileObjects ограничен 64-мя объектами и для поддержки большего числа подключений придётся им назначать один и тот же ивент?.. Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.10.2020, 19:09 |
|
||
|
Установить таймаут сокета
|
|||
|---|---|---|---|
|
#18+
Dimitry Sibiryakov Кстати, ты же в курсе, что WaitForMultileObjects ограничен 64-мя объектами ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.10.2020, 20:07 |
|
||
|
Установить таймаут сокета
|
|||
|---|---|---|---|
|
#18+
_Vasilisk_, а что просто не вести кучку остатков(Binary heap), это дешевле и быстрее, чем WaitForMultipleObjects ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.10.2020, 09:10 |
|
||
|
Установить таймаут сокета
|
|||
|---|---|---|---|
|
#18+
kealon(Ruslan)а что просто не вести кучку остатков(Binary heap) Что за "куча остатков", позволяющая ожидать приёма данных из 100500 сокетов? Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.10.2020, 12:15 |
|
||
|
Установить таймаут сокета
|
|||
|---|---|---|---|
|
#18+
Dimitry Sibiryakov, ему что надо? "Установить таймаут сокета" в чём проблема ждать ровно столько сколько нужно что бы решить что нужно что-то грохнуть? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.10.2020, 14:25 |
|
||
|
Установить таймаут сокета
|
|||
|---|---|---|---|
|
#18+
kealon(Ruslan)в чём проблема ждать ровно столько сколько нужно что бы решить что нужно что-то грохнуть? В том, что ждать по-любому придётся главное событие (приход данных из сокета), а отстрел неактивных это побочка. Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.10.2020, 14:33 |
|
||
|
Установить таймаут сокета
|
|||
|---|---|---|---|
|
#18+
Dimitry Sibiryakov, ну вот сразу это и делать, зачем лишние побочки ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.10.2020, 17:31 |
|
||
|
Установить таймаут сокета
|
|||
|---|---|---|---|
|
#18+
kealon(Ruslan)ну вот сразу это и делать Сразу делать что? Уменьшать остатки в целой куче при каждом принятом пакете? Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.10.2020, 17:47 |
|
||
|
Установить таймаут сокета
|
|||
|---|---|---|---|
|
#18+
Dimitry Sibiryakov kealon(Ruslan)ну вот сразу это и делать Сразу делать что? Уменьшать остатки в целой куче при каждом принятом пакете? зачем у всей кучи? всё просто у того сокета, по которому пришли данные, выставляется время следующей проверки и меняется его положение в куче на вершине кучи у тебя кандидат на вылет ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.10.2020, 20:23 |
|
||
|
Установить таймаут сокета
|
|||
|---|---|---|---|
|
#18+
kealon(Ruslan) у того сокета, по которому пришли данные, выставляется время следующей проверки и меняется его положение в куче на вершине кучи у тебя кандидат на вылет kealon(Ruslan) а что просто не вести кучку остатков(Binary heap), это дешевле и быстрее, чем WaitForMultipleObjects Все таки основная цель ждать события от сокетов, а не пристреливать их по таймауту ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.10.2020, 14:12 |
|
||
|
Установить таймаут сокета
|
|||
|---|---|---|---|
|
#18+
_Vasilisk_ kealon(Ruslan) у того сокета, по которому пришли данные, выставляется время следующей проверки и меняется его положение в куче на вершине кучи у тебя кандидат на вылет kealon(Ruslan) а что просто не вести кучку остатков(Binary heap), это дешевле и быстрее, чем WaitForMultipleObjects Все таки основная цель ждать события от сокетов, а не пристреливать их по таймауту 2 у автора надо спросить, но он вроде однозначен _Vasilisk_Установить таймаут сокета идея простая: вместо горождения лишних ивентов, "вызвать Select" с конкретным таймаутом ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.10.2020, 14:18 |
|
||
|
Установить таймаут сокета
|
|||
|---|---|---|---|
|
#18+
kealon(Ruslan)идея простая: вместо горождения лишних ивентов, "вызвать Select" с конкретным таймаутом С одной стороны это, конечно, сильно соптимизирует поиск кандидата на отстрел. С другой - придётся держать дополнительную структуру, которую придётся сканировать при штатном дисконнекте, например. Неоднозначненько. Попахивает преждевременной оптимизацией. Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.10.2020, 14:25 |
|
||
|
Установить таймаут сокета
|
|||
|---|---|---|---|
|
#18+
Dimitry Sibiryakov, на обычно как бы штатный дисконнект в том же Select и выдаётся, а формально разницы закрылся ли он или просто "пропал" - нет я уж молчу, что поддержка такой простой структуры явно не дороже, чем событие на каждый сокет за которым ещё и следить надо ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.10.2020, 14:32 |
|
||
|
|

start [/forum/topic.php?fid=58&fpage=35&tid=2037951]: |
0ms |
get settings: |
10ms |
get forum list: |
16ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
98ms |
get topic data: |
8ms |
get forum data: |
2ms |
get page messages: |
53ms |
get tp. blocked users: |
1ms |
| others: | 245ms |
| total: | 437ms |

| 0 / 0 |
