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

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

Идентификация клиента в TServerSoket [D5, D6, Win95/98, Win2k]


KPV-10k ©   (2002-04-25 21:46:00) 

Мастера, подскажите, как аутентифицировать номер клиента в TServerSoket, если подсоединено несколько клиентов, и какой-то отсоединился... Смотрел ответы ниже =>[LiNkS], но там не сказано, как это сделать, ведь одновременно может быть несколько соединений, а надо отправить сообщение только одному.


KPV-10k   (2002-04-28 09:20:00) [1]

Всем огромное спасибо! Теперь всё клёво работает...


and_   (2002-04-26 14:52:00) [2]

При возникновении события

ClientSocket1Disconnect

в переменной Socket.Handle Содержится дескриптор отсоединившенося клиента, присвоенный ему в момент присоединения.

А отправить сообщение одному, можно, например, так


for p := 0 to ServerSocket1.Socket.ActiveConnections-1 do
if ServerSocket1.Socket.Connections[p].Handle = ClientHandle1 then
ServerSocket1.Socket.Connections[p].SendText("hello");


SerVS   (2002-04-26 00:59:00) [3]

Привязать информации к каждому сокету легко. Используй Socket.Data. Это указатель, так что можешь создать любой объект и хранить в нем всю нужную тебе инфу.
ЗЫ. Если верить доке, то тебе удалять эти обекты ну нужно, за тебя уже позаботились ;)


cyborg   (2002-04-25 21:57:00) [4]

Я думаю так. Можно сделать процедуру или функцию, которой передаётся Socket, и эта процедура или запоминает где нибудь этот сокет или что то делает и посылает по этому сокету то что надо.

Procedure MessageInSocket(Socket : TCustomWinSocket);
Begin
Socket.SendBuf(Data,DataSize);
End;


procedure TForm1.ServerSocketClientRead(Sender: TObject;
Socket: TCustomWinSocket);
begin
MessageInSocket(Socket);
end;

------
Жить хорошо! А хорошо жить, ещё лучше!


Наверх

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