1. Наш канал codeby в telegram. Пишем об информационной безопасности, методах защиты информации, о программирован. Не пропускай новости с кодебай, будь в тренде ! Подробнее ...

    Скрыть объявление
  2. Чат codeby в telegram перезагрузка. Обсуждаем вопросы информационной безопасности и методы защиты информации, программирование. Задавайте свои вопросы и комментируйте чужие. Подробнее ...

    Скрыть объявление

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

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

  1. Verser

    Verser Гость

    Репутация:
    0
    Здравствуйте!

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

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

    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 Гость

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

    Verser Гость

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

    Verser Гость

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

    etc Гость

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

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

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

    Verser Гость

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

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