![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
ClientSocket.Connected ;НЕ ОБНОВЛЯЕТСЯ ! [D5, Win95/98]
Димон1 © (2002-08-13 09:56:00)При отключении клиента от TServerSocket свойство ClientSocket.Connected попрежнему возвращает true. В чём дело?
procedure TMyServerThread.ClientExecute;
begin
while (not Terminated) and ClientSocket.Connected do
.......
Digitman (2002-08-13 11:50:00) [1]почему нельзя ? можно.
при разрыве виртуальной петли коннекта по инициативе парнера гнездо генерирует событие FD_CLOSE, которое передается либо сообщением в заданное тобой окно (см. WSAAsyncSelect) либо взводит сигнальный флаг определенного тобой события (см. WSACreateEvent, WSAEventSelect, WSAWaitForEvent, WSAEnumNetworkEvents)
Димон1 (2002-08-13 11:30:00) [2]Никак нельзя определить, что клиент отключился? Даже если он сделал ClientSocket1.Close ?
Digitman (2002-08-13 11:11:00) [3]вот ответ на твой вопрос :
constructor TCustomWinSocket.Create(ASocket: TSocket);
begin
...
FConnected := FSocket <> INVALID_SOCKET;
end;
destructor TCustomWinSocket.Destroy;
begin
if FConnected and (FSocket <> INVALID_SOCKET) then
Disconnect(FSocket);
...
end;
procedure TCustomWinSocket.Disconnect(Socket: TSocket);
begin
...
FConnected := False;
...
end;