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

TServerSocket - как узнать что клиент до сих пор подключен   Найти похожие ветки 

← →
tm   (2003-07-21 11:37) [0]

Здраствуйте, помогите пожалуйста с сокетами.
Я использую тип stThreadBlocking. Сервер получает от клиента команду и выполняет ее. Ошибка происходит когда клиент закрывает свою программу не послав команды о завершении, а сервер продолжет слушать клиента. Пробовал использовать ClientSocket.Connected, но он не дает знать.
У меня в процедуре ClientExecute след. код:

var
ch: char;
...
MyStrm:=TWinSocketStream.Create(ClientSocket, 20000);
...
{ Ожидание команды от клиента }
repeat
while not MyStrm.WaitForData(500) do
( ch, 1) Здраствуйте, помогите пожалуйста с сокетами.
Я использую тип stThreadBlocking. Сервер получает от клиента команду и выполняет ее. Ошибка происходит когда клиент закрывает свою программу не послав команды о завершении, а сервер продолжет слушать клиента. Пробовал использовать ClientSocket.Connected, но он не дает знать.
У меня в процедуре ClientExecute след. код:

var
ch: char;
...
MyStrm:=TWinSocketStream.Create(ClientSocket, 20000);
...
{ Ожидание команды от клиента }
repeat
while not MyStrm.WaitForData(500) do
Application.ProcessMessages;
until MyStrm.Read(ch, 1)=1;

{ Обработка команды }
case ch of
#0: ... ;
#1: ... ;
...
#2: Выход;
...


← →
Digitman ©   (2003-07-21 15:12) [1]

если кл.приложение завершется нештатно (например, принудительное снятие кл.процесса с выполнения либо физ.разрыв соединения клиента с сетью), то обнаружить сей факт на стороне сервера можно только периодически посылая что-то клиенту - вызов любого из send-методов с любыми параметрами в этом случае :
- вызовет немедленное исключение;
- в non-blocking-режиме завершится нормально, но через некоторое время (~ 3 мин. по умолчанию) будет возбуждено событие OnClientError() с кодом ошибки, отражающим причину отказа



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

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



Память: 0.45 MB
Время: 0.026 c
1-71702
Петр
2003-09-11 07:12
2003.09.22
Кто-нибудь знает формат почтового файла dbx


1-71636
Raper
2003-09-09 09:43
2003.09.22
Помогите перевести String в Char


7-71962
evg12
2003-06-28 05:15
2003.09.22
Серийный номер HDD


1-71654
td
2003-09-08 01:16
2003.09.22
архивирование


1-71727
labanga
2003-09-10 14:28
2003.09.22
Как написать маску для float




   Наверх