Текущий архив: 2007.10.28;
Скачать: CL | DM;
ВнизОбработка дисконнекта Найти похожие ветки
← →
Debug © (2007-08-11 20:40) [0]Выдумал следующую схему сетевой работы клиента:
1. Обмен данными происходит пакетами;
2. При коннекте клиент создает поток в котором до отруба в цикле опрашивается неблокирующий сокет:
а) Читаю данные с сокета. Если в очереди чтения накопился полный пакет обрабатываю его и удаляю из очереди;
б) Пишу данные в сокет, если очереди для отправки не пуста;
3. Основной тред работает только с очередями отправки и получения без возможности собственного приема/передачи.
4. Если пакет - запрос чего либо, то основной тред при желании может подождать (в итоге получит пакет с ответом или дисконнект или таймаут).
5. При обрыве связи об этом узнаёт только дочерний поток. И вызывает процедуру обработки дисконнекта OnDisconnect.
Проблема в том, чтобы сделать вызов OnDisconnect от имени основного потока. Подскажите как быть?
P.S. Возможно надо копать в сторону PostMessage?
P.P.S. Показалось, что вопрос относится к общему форуму, а не к сетям =)
← →
Anatoly Podgoretsky © (2007-08-11 20:45) [1]> Debug (11.08.2007 20:40:00) [0]
> P.P.S. Показалось, что вопрос относится к общему форуму, а не к сетям
Возможно.
← →
Debug © (2007-08-12 11:49) [2]Воспользовался PostMessage, вроде работает
← →
Сергей М. © (2007-08-13 09:46) [3]Зачем осн.потоку нужно знать о дисконнекте ?
Страницы: 1 вся ветка
Текущий архив: 2007.10.28;
Скачать: CL | DM;
Память: 0.44 MB
Время: 0.045 c