Отслеживание клиентов на сокетах

Тема в разделе "Delphi - Сети", создана пользователем Verser, 16 июн 2008.

  1. Verser

    Verser Гость

    Здравствуйте!

    Очень прошу ответить на такой вопрос..

    Есть сервер на сокетах

    MS: TServerSocket;
    procedure MSClientConnect(Sender: TObject; Socket: TCustomWinSocket);
    procedure MSClientDisconnect(Sender: TObject; Socket: TCustomWinSocket);
    procedure MSClientRead(Sender: TObject; Socket: TCustomWinSocket);


    procedure TForm1.MSClientConnect(Sender: TObject; Socket: TCustomWinSocket);
    begin
    logM('Подключился пользователь.. ');
    end;

    procedure TForm1.MSClientDisconnect(Sender: TObject; Socket: TCustomWinSocket);
    begin
    logM('Отключился пользователь.. ');
    end;

    procedure TForm1.MSClientRead(Sender: TObject; Socket: TCustomWinSocket);
    begin
    LogM(Socket.RemoteAddress+': '+ Socket.ReceiveText); // Занесли в лог сообщение из канала
    end;

    Встаёт вопрос - как отследить, какой именно клиент подключился, кто написал сообщение и кто отдисконнектился? ;) Есть какая-то мысль попробовать смотреть handle... но пока ещё не до конца сформирована.

    Пожалуйста, подскажите... :lol:
     
  2. Silver Wind

    Silver Wind Гость

    Ну так у тебя же в каждом событии передается параметр Socket: TCustomWinSocket - это все что тебе нужно, дальше копай в HELP, как по сокету получить адрес клиента и т.п.
     
  3. Verser

    Verser Гость

    У меня может быть куууча клиентов с одного адреса, так что чисто по ип - не очень различимы. Попробую через socket.handle..
     
  4. Verser

    Verser Гость

    Я думаю легче всего будет пустить широковещательное (broadcust вроде) сообщение.
     
  5. etc

    etc Гость

    Verser А зачем вам идентифицировать клиента? и при чем тут broadcast?
     
  6. vital

    vital Больной Компом Детектед

    Регистрация:
    29 янв 2006
    Сообщения:
    2.468
    Симпатии:
    27
    ServerSocket.Socket.Connections[].. Дальше в хелп.
     
  7. Verser

    Verser Гость

    Всем спасибо, решено через ServerSocket.Socket.Connections.Handle
     
Загрузка...

Поделиться этой страницей