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

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

TServerSocket.Socket.Disconnect соединения неправильно работает?? [D5, WinME]


SergP ©   (2003-08-14 12:59:00) 

Вот такой код:

procedure TForm1.ClientSocketDisconnect(Sender: TObject;
Socket: TCustomWinSocket);
var
handl:integer;
begin
handl:=TClientSocket(Sender).Tag;
ServerSocket.Socket.Disconnect(handl);
end;

Вобщем в прокси-сервере когда дисконектится ClientSocket, мне нужно дисконектить соответствующее соединение в ServerSocket
В свойстве Tag ClientSocket"a я храню хендл соединения.
Так вот при дисконекте Clientsocket"а вызывается эта процедура и вместо того чтобы дисконектить соединение ServerSocket"a c указаным хендлом, она дисконектит все его соединения.
Это глюки в ServerSocket или я что-то не так делаю?


Digitman   (2003-08-14 13:18:00) [1]

с фиксацией "хэндлов" ты, imho, занялся ерундой

храни в ClientSocket.Socket.Data просто указатель на объект ClientSocket: TServerClientWinSocket, тот самый, что ты получаешь вторым параметром в событии TServerSocket.OnClientConnect - он будет однозначно идентифицировать связку.

в этом случае

procedure TForm1.ClientSocketDisconnect(Sender: TObject;
Socket: TCustomWinSocket);
begin
TCustomWinSocket(Socket.Data).Close;
end;


Наверх

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