![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Разрыв соединения с многопоточным сервером [WinXP]
Debug © (2007-07-29 19:41:00)Каким образом отследить в stThreadBlocking сервере процесс отключения клиента? Событие OnDisconnect не возникает.
Проверил отладчиком: в соединенном состоянии WaitForData ждет 1000 мс. При выполнении на клиенте:
ClientSocket1.Active := False;
WaitForData выполняется мгновенно, но последующий метод Read не генерит исключительную ситуацию.
while not Terminated and ClientSocket.Connected do
begin
try
if SocketStream.WaitForData( 1000) then
begin
Received := SocketStream.Read(Buffer, SizeOf(Buffer));
if Received <= 0 then
begin
// ...
end;
end;
except on E: Exception do
begin
Terminate;
end;
end;
end;
SlymRO (2007-07-30 04:36:00) [1]Debug © (29.07.07 19:41)
последующий метод Read не генерит исключительную ситуацию
Ворачивает 0 байт почтитанно... можно закрываться...
Делай свое "грязное дело" перед выходом из ClientExecute