Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

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;


Наверх

Титульная страница Поиск, карта сайта Написать письмо