• 🔥 Бесплатный курс от Академии Кодебай: «Анализ защищенности веб-приложений»

    🛡 Научитесь находить и использовать уязвимости веб-приложений.
    🧠 Изучите SQLi, XSS, CSRF, IDOR и другие типовые атаки на практике.
    🧪 Погрузитесь в реальные лаборатории и взломайте свой первый сайт!
    🚀 Подходит новичкам — никаких сложных предварительных знаний не требуется.

    Доступ открыт прямо сейчас Записаться бесплатно

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

  • Автор темы Автор темы Verser
  • Дата начала Дата начала
V

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:
 
Ну так у тебя же в каждом событии передается параметр Socket: TCustomWinSocket - это все что тебе нужно, дальше копай в HELP, как по сокету получить адрес клиента и т.п.
 
У меня может быть куууча клиентов с одного адреса, так что чисто по ип - не очень различимы. Попробую через socket.handle..
 
Я думаю легче всего будет пустить широковещательное (broadcust вроде) сообщение.
 
Verser А зачем вам идентифицировать клиента? и при чем тут broadcast?
 
Всем спасибо, решено через ServerSocket.Socket.Connections.Handle
 
Мы в соцсетях:

Взломай свой первый сервер и прокачай скилл — Начни игру на HackerLab