Ошибки при асинхронных опирациях asio, асинхронный сервер TCP.. |
Здравствуйте, гость ( Вход | Регистрация )
Ошибки при асинхронных опирациях asio, асинхронный сервер TCP.. |
Гость_Гость_Алексей_*_* |
28.12.2011, 15:21
Сообщение
#1
|
Гости |
Проблема наверн стандартная, но нормального решения её я не смог нагуглить.
Примерчик обычный... после подключения сессия начинает ждать данные сервер создаёт ещё одну и ждёт пока не придёт подключение.... запускается сессия методом start....
когда я удаляю сессию в очереди остаются асинхронные операции... которые в итоге роняют сервер... я пробовал просто закрыть сокет... или вызывать кансел для сокета... но сервер всё равно падает. читал под линукс всё отработает норм после вызова кансел...... как быть под виндой? |
|
|
BRE |
28.12.2011, 16:42
Сообщение
#2
|
Профессионал Группа: Участник Сообщений: 1112 Регистрация: 6.3.2009 Из: Ростов-на-Дону Пользователь №: 591 Спасибо сказали: 264 раз(а) Репутация: 44 |
|
|
|
Гость_Гость_Алексей_*_* |
28.12.2011, 16:54
Сообщение
#3
|
Гости |
как быть под виндой? И под вендой, и под linux, я бы не пользовался конструкцией: delete this; Если хочешь, что бы объекты Session разрушались сами используй boost::enable_shared_from_this. Ну как я понимаю через эту чтуку я буду ждать завершения всех асинхронных операций.. а потом тока вызоветься диструктор моего обьекта. Я хочу найти способ прост обарвать цепочку событий... отменить все асинхронные операции сокета... отправка и получение данных мне уже не нужна.. когда я добил обьект... иль я чёт непонимаю... ну за подсказку спасибо.. я какрас копал в эту сторону. |
|
|
BRE |
28.12.2011, 16:58
Сообщение
#4
|
Профессионал Группа: Участник Сообщений: 1112 Регистрация: 6.3.2009 Из: Ростов-на-Дону Пользователь №: 591 Спасибо сказали: 264 раз(а) Репутация: 44 |
|
|
|
Гость_Гость_Алексей_*_* |
28.12.2011, 17:00
Сообщение
#5
|
Гости |
Принципе мне неважно, откуда они будут уничтожаться... но я чёт не понимаю, что это даст.
Отловить дисконект я могу ток при записи и чтении... и удалять естественно я должен там после неких действий над объектом. |
|
|
Гость_Гость_Алексей_*_* |
28.12.2011, 17:05
Сообщение
#6
|
Гости |
socket::shutdown После этого сработают все callback'и с кодом operation_aborted, при получении этого состояния просто не перезапускай новые обработчики. ну shutdown прост не даст запускать новые.. а те что уже были отправлены до вызова shutdown. чё с ними. серовно какбы ждать надо. |
|
|
BRE |
28.12.2011, 17:10
Сообщение
#7
|
Профессионал Группа: Участник Сообщений: 1112 Регистрация: 6.3.2009 Из: Ростов-на-Дону Пользователь №: 591 Спасибо сказали: 264 раз(а) Репутация: 44 |
|
|
|
Гость_Гость_Алексей_*_* |
28.12.2011, 17:31
Сообщение
#8
|
Гости |
Про что идет речь? Что не даст запускать? http://www.boost.org/doc/libs/1_47_0/doc/h.../overload1.html .....This function is used to disable send operations, receive operations, or both. как я понимаю функция shutdown заставит сокет игнорить вызов асинхронных методов записи и чтения... |
|
|
BRE |
28.12.2011, 18:00
Сообщение
#9
|
Профессионал Группа: Участник Сообщений: 1112 Регистрация: 6.3.2009 Из: Ростов-на-Дону Пользователь №: 591 Спасибо сказали: 264 раз(а) Репутация: 44 |
|
|
|
Гость_Гость_Алексей_*_* |
28.12.2011, 20:22
Сообщение
#10
|
Гости |
|
|
|
Текстовая версия | Сейчас: 22.11.2024, 0:42 |