Текущий архив: 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 filaGame=
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 serveryGET /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.51 MB
Время: 0.042 c