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

start [/forum/topic.php?fid=58&mobile=1&tid=2037951]: |
0ms |
get settings: |
5ms |
get forum list: |
9ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
41ms |
get topic data: |
6ms |
get forum data: |
2ms |
get page messages: |
28ms |
get tp. blocked users: |
1ms |
| others: | 229ms |
| total: | 325ms |

| 0 / 0 |
