Вниз
Скачать: 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.014 c
3-71533
Chery
2003-09-02 13:56
2003.09.22
Выдаёт ошибку в SQL при использов. ф-ции Max() с др. полями.


1-71588
Вован
2003-09-09 13:15
2003.09.22
Можно ли в TItemMenu у которого есть ImageIndex > -1 вывести


6-71792
laider
2003-07-22 17:08
2003.09.22
net send + delphi 4 + win 98 ???!!!


1-71583
Alek Aaz
2003-09-09 13:33
2003.09.22
Печать на принтер


8-71756
Жанна
2003-05-28 13:29
2003.09.22
Бегающие огни




   Наверх