Вниз
Скачать: 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 вся ветка

Скачать: CL | DM;



Память: 0.45 MB
Время: 0.013 c
8-1168554278
Infinityx93
2007-01-12 01:24
2007.10.28
Динамический Tseries в chart


2-1191423364
Winni
2007-10-03 18:56
2007.10.28
как изменить переменные окружения в RunTime ?


15-1190888082
Cyrax
2007-09-27 14:14
2007.10.28
Авторское право на схему города: пара тонких вопросов...


2-1191923774
новый_
2007-10-09 13:56
2007.10.28
ValueListEditor и ComboBox


2-1191324437
Mariya
2007-10-02 15:27
2007.10.28
Создание кнопки программно




   Наверх