Вниз
Скачать: CL | DM;

Почему клиент не получает сообщение?   Найти похожие ветки 

← →
Leny ©   (2002-08-01 13:52) [0]

При закрытии серверного приложения сервер посылает всем клиентам сообщение (описано в procedure TServer.FormClose).
Почему клиент не получает это сообщение (принимаю его в TClient.ClientSocket1Read)?


← →
Digitman ©   (2002-08-01 14:26) [1]

В синхронном режиме это будет и в FormClose работать.
Но у тебя как помнится - асинхронный режим. Это означает, что закрытие гнезда происходит раньше, чем полностью отработает send-метод.

Иными словами, вызываемый тобой send-метод не блокирует выполнение последующих операторов в обработчике FormClose на время РЕАЛЬНОЙ передачи данных, а лишь ставит запрос на передачу в очередь, и после этого выполнение продолжается со след.строчки. Как только выполнится весь обработчик, у тебя, очевидно, разрушается и сам объект-форма, вместе с компонентом TServerSocket, так и не успевшим передать все то, что было поставлено в очередь на передачу.


← →
Digitman ©   (2002-08-01 14:29) [2]

Еще раз заострю твое внимание на том, что очер. твоя проблема - из той же опреры, что и предыдущая : из-за непонимания различий в работе гнезд в блокирующем (синхронном) и неблокирующем (асинхронном) режимах ...

Почитала бы уж что-нибудь на эту тему, давно пора .. да повнимательней ..



Страницы: 1 вся ветка

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



Память: 0.45 MB
Время: -0.99 c
3-7772
Lina
2002-09-11 13:35
2002.10.03
Не знаю как убрать ScrollBar из DBGrid ...


14-8130
NixteR
2002-09-08 18:43
2002.10.03
Посоветуйте литературу для изучения Delphi 6


14-8146
Oleg_Gashev
2002-09-08 22:51
2002.10.03
Кнут. Том 1. Глава 1.2.5 Перестанивки и факториалы. Метод 2.


4-8227
Игорь
2002-08-09 04:12
2002.10.03
Копиование перемещение файлов не получается :( pls help


3-7820
bobr12
2002-09-12 10:43
2002.10.03
Stream и Blob поля




   Наверх