Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Сети";
Текущий архив: 2015.09.10;
Скачать: [xml.tar.bz2];

Вниз

Как сделать аутификацию после подключения клиента к 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;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.51 MB
Время: 0.064 c
15-1421425875
SergP
2015-01-16 19:31
2015.09.10
Перепаковать архивы 7z в zip


15-1419531172
Rouse_
2014-12-25 21:12
2015.09.10
Задачка для разминки мозга


2-1394436419
alexdn
2014-03-10 11:26
2015.09.10
Закрытие формы


8-1236108535
Ем растишку - летаю
2009-03-03 22:28
2015.09.10
Delphi + .icc color profiles


15-1418938202
Юрий
2014-12-19 00:30
2015.09.10
С днем рождения ! 19 декабря 2014 пятница





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский