Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2015.09.10;
Скачать: CL | DM;

Вниз

Как сделать аутификацию после подключения клиента к TServerSocket   Найти похожие ветки 

 
minomorf   (2009-10-12 16:53) [0]

Т.е. клиент подрубается и сразу отправляет пакет с паролем.
Если на сервере сразу после подключения не пришел пароль или он неверен - отключить клиента.

Как это сделать на сервере TServerSocket.
Можно и на пальцах, а именно какие события сервера придется ловить и как сделать таймаут ожидания пакета с паролем?


 
Сергей М. ©   (2009-10-12 16:57) [1]

Режим какой - nonblocking или threadblocking ?


 
minomorf   (2009-10-12 17:02) [2]

NonBlocking


 
Сергей М. ©   (2009-10-12 17:18) [3]


> какие события сервера придется ловить


OnClientConnect и OnClientRead


> как сделать таймаут ожидания пакета с паролем


В обработчике OnClientConnect запускаешь таймер с заданным периодом срабатывания - он будет отсчитывать время таймаута.

В обработчике события таймера закрываешь соединение.

В обработчике OnClientRead принимаешь передаваемые клиентом данные, аккумулируешь их в буфере, анализируешь содержимое буфера и в случае обнаружения  в нем ожидаемого пароля останавливаешь таймер.


 
minomorf   (2009-10-12 18:18) [4]

Спасибо


 
Сергей М. ©   (2009-10-12 18:22) [5]


> какие события сервера придется ловить


+ OnClientDisconnect + OnClientError

Эти события тоже нужны как минимум для того чтобы остановить запущенный таймер при неожиданном дисконнекте по инициативе клиента или возникшей ошибке


 
minomorf   (2009-10-12 18:38) [6]

А еще вопрос. Как передать таймеру идентификатор сокета?


 
minomorf   (2009-10-12 18:39) [7]

Надо создавать массив связку Сокет-Таймер?!


 
Сергей М. ©   (2009-10-12 18:49) [8]

Надо, если на каждый клиенский сокет ты будешь создавать отдельный таймер.


 
Сергей М. ©   (2009-10-12 18:51) [9]


> передать таймеру идентификатор сокета


У TTimer, к примеру, есть св-во Tag.

Можно и наоборот - сослаться на созданный TTImer в свойстве Socket.Data.

ТОлько вот вовсе необязательно плодить кучу таймеров - достаточно всего одного.


 
minomorf   (2009-10-12 19:17) [10]

А на что указывает Socket.Data?


 
Сергей М. ©   (2009-10-12 19:23) [11]

На что захочешь, на то и укажет.
Это пользовательское св-во.


 
minomorf   (2009-10-12 21:15) [12]

Отлично, догда я пожалуй в data опишу число, типа если оно > delay то отрубаемся, если = authorize то ничего не делаем, а в таймере задаем обход всех сокетов с инкрементом data.


 
Сергей М. ©   (2009-10-12 21:22) [13]


> minomorf   (12.10.09 21:15) [12]


Ну да, примерно так.


 
bananas ©   (2010-06-09 04:20) [14]

у меня схожая задача.
скажите, как отключить конкретного пользователя?
Допустим подключено 20 клиентов, их ip хранятся в БД. Нужно отключить клиента с ip одним из БД.
Отключить именно серверсокетом, ибо на клиенте ничего писать нельзя. Я пока кроме отключения всего серверсокета (что, как я полагаю, отключит всех клиентов) ничего не нашел..


 
Slym ©   (2010-06-09 11:04) [15]

with ServerSocket.Socket do
begin
 for i:=0 to ActiveConnections-1 do
   if Connections[i].RemoteAddress="127.0.0.1" then
     Connections[i].Close;
end;


 
ArtGre   (2010-06-14 18:01) [16]

Vsem zdrasti. izvenite za pocherk, drygoi klaviatyri net.
Y menia vopros, mojno li ispolzovat TServerSocket dlia raboti v Internete.
Esli da, v chem otlichia ot raboti v lokalke?
spasibo


 
Сергей М. ©   (2010-06-14 18:30) [17]


> ArtGre   (14.06.10 18:01) [16]


Можно.
Ни в чем.


 
Anatoly Podgoretsky ©   (2010-06-14 18:36) [18]

> ArtGre  (14.06.2010 18:01:16)  [16]

Отличий нет. Код одинаково пригоден.


 
ArtGrek   (2010-06-14 18:38) [19]

R smotrel cherez IRIS obmen danix klienta k kotorimy xochy servak napisat, po IP ix servaka 5 client portov rabotaet i server posrt 80, kak mne ego(80) ispolzovat v svoem servake?


 
ArtGrek   (2010-06-14 18:46) [20]

opishy nemnogo klientskyu progy.
et igra, kak R ponial, y kajdogo porta svoe prednaznachenie,

soderjimoe ini fila
Game=
Update=
Authorization=
Registration=
OnCollect=


mne bi xotia bi zapystit chto b igra ne vikluchalas


 
ArtGrek   (2010-06-14 19:41) [21]

spasibo vsem kto popitalsia pomoch, no vrodi nemnogo razobralsia.
server posilaet na port 80, a klient prinimaet cherez svoi 5 portov v zavisimosti ot zadachi i tak je otvechaet cherez 80 port
teper ostalos razobraca v protokole
a potom rashifrovivat paketi
esli est predlojenia s ydovolstviem vislyshau opitnix kriptografov
R sam proger novichek, dymau lubaia infa bydet poleznoi


 
Сергей М. ©   (2010-06-14 21:16) [22]


> opitnix kriptografov


К конференции "Сети" криптография не имеет отношения.


 
ArtGrek   (2010-06-14 21:30) [23]

tam s protokolom nemnogo slojnovato on zashifrovan, a R eshe v etom ne razberaus
et ot klienta servery

GET /3/srv/hottarget.php?line=9&bet=1&turnid=488&PHPSESSID=33b856ppbs31vak092jorl61o2 HTTP/1.1
Accept: */*
User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1)
Host: 000.000.000.000
Cache-Control: no-cache
Cookie: parkinglot=1; PHPSESSID=33b856ppbs31vak092jorl61o2


et ot  servera klienty

HTTP/1.1 200 OK
Date: Mon, 14 Jun 2010 00:02:17 GMT
Server: Apache/2.2.3 (CentOS)
X-Powered-By: PHP/5.1.6
Expires: Thu, 19 Nov 1981 08:52:00 GMT
Cache-Control: no-store, no-cache, must-revalidate, post-check=0, pre-check=0
Pragma: no-cache
Content-Length: 114
Content-Type: text/html; charset=windows-1251

cr=4442000 rl=134283520215023 ok=1 turnid=488 fc=10 fp=1 pr=0 jp=0 cp=1 gn=5 id=1545903063 dt=10.06.14 -- 02:02:17HTTP/1.1 200 OK
Date: Mon, 14 Jun 2010 00:02:20 GMT
Server: Apache/2.2.3 (CentOS)
X-Powered-By: PHP/5.1.6
Expires: Thu, 19 Nov 1981 08:52:00 GMT
Cache-Control: no-store, no-cache, must-revalidate, post-check=0, pre-check=0
Pragma: no-cache
Content-Length: 44
Content-Type: text/html; charset=windows-1251

pr=0 ok=1 turnid=489 dt=10.06.14 -- 02:02:20HTTP/1.1 200 OK
Date: Mon, 14 Jun 2010 00:02:20 GMT
Server: Apache/2.2.3 (CentOS)
X-Powered-By: PHP/5.1.6
Expires: Thu, 19 Nov 1981 08:52:00 GMT
Cache-Control: no-store, no-cache, must-revalidate, post-check=0, pre-check=0
Pragma: no-cache
Content-Length: 114
Content-Type: text/html; charset=windows-1251

cr=4442000 rl=435A403A2804163 ok=1 turnid=490 fc=10 fp=2 pr=0 jp=0 cp=1 gn=6 id=2101165749 dt=10.06.14 -- 02:02:20HTTP/1.1 200 OK
Date: Mon, 14 Jun 2010 00:02:22 GMT
Server: Apache/2.2.3 (CentOS)
X-Powered-By: PHP/5.1.6
Expires: Thu, 19 Nov 1981 08:52:00 GMT
Cache-Control: no-store, no-cache, must-revalidate, post-check=0, pre-check=0
Pragma: no-cache
Content-Length: 44
Content-Type: text/html; charset=windows-1251


 
ArtGrek   (2010-06-14 21:32) [24]

eshe ne razobralsia v stryktyre protokola, razberetes?


 
Eraser ©   (2010-06-15 03:20) [25]

http://www.translit.ru/


 
Сергей М. ©   (2010-06-15 10:39) [26]


> razberetes?


Оно нам надо ?


 
ArtGrek   (2010-06-15 13:05) [27]


> Оно нам надо ?

o cene dogovorimsia


 
ArtGrek   (2010-06-18 23:21) [28]

net jelaushix podzarabotat)?


 
bananas ©   (2010-06-21 06:52) [29]

Slym
Спасибо))
Извиняюсь за долгий ответ, обстоятельства..



Страницы: 1 вся ветка

Текущий архив: 2015.09.10;
Скачать: CL | DM;

Наверх




Память: 0.53 MB
Время: 0.157 c
15-1419531172
Rouse_
2014-12-25 21:12
2015.09.10
Задачка для разминки мозга


3-1304509903
fxPavel
2011-05-04 15:51
2015.09.10
расчет номера недели в FB через UDF


2-1392456356
lewka
2014-02-15 13:25
2015.09.10
помогите с запросом в SQL, пожалуйста


15-1419024604
Юрий
2014-12-20 00:30
2015.09.10
С днем рождения ! 20 декабря 2014 суббота


11-1259909126
MTsv DN
2009-12-04 09:45
2015.09.10
Работа с меню...