-
minomorf (12.10.09 16:53) [0]Т.е. клиент подрубается и сразу отправляет пакет с паролем.
Если на сервере сразу после подключения не пришел пароль или он неверен - отключить клиента.
Как это сделать на сервере TServerSocket.
Можно и на пальцах, а именно какие события сервера придется ловить и как сделать таймаут ожидания пакета с паролем? -
Сергей М. © (12.10.09 16:57) [1]Режим какой - nonblocking или threadblocking ?
-
minomorf (12.10.09 17:02) [2]NonBlocking
-
Сергей М. © (12.10.09 17:18) [3]
> какие события сервера придется ловить
OnClientConnect и OnClientRead
> как сделать таймаут ожидания пакета с паролем
В обработчике OnClientConnect запускаешь таймер с заданным периодом срабатывания - он будет отсчитывать время таймаута.
В обработчике события таймера закрываешь соединение.
В обработчике OnClientRead принимаешь передаваемые клиентом данные, аккумулируешь их в буфере, анализируешь содержимое буфера и в случае обнаружения в нем ожидаемого пароля останавливаешь таймер. -
minomorf (12.10.09 18:18) [4]Спасибо
-
Сергей М. © (12.10.09 18:22) [5]
> какие события сервера придется ловить
+ OnClientDisconnect + OnClientError
Эти события тоже нужны как минимум для того чтобы остановить запущенный таймер при неожиданном дисконнекте по инициативе клиента или возникшей ошибке -
minomorf (12.10.09 18:38) [6]А еще вопрос. Как передать таймеру идентификатор сокета?
-
minomorf (12.10.09 18:39) [7]Надо создавать массив связку Сокет-Таймер?!
-
Сергей М. © (12.10.09 18:49) [8]Надо, если на каждый клиенский сокет ты будешь создавать отдельный таймер.
-
Сергей М. © (12.10.09 18:51) [9]
> передать таймеру идентификатор сокета
У TTimer, к примеру, есть св-во Tag.
Можно и наоборот - сослаться на созданный TTImer в свойстве Socket.Data.
ТОлько вот вовсе необязательно плодить кучу таймеров - достаточно всего одного. -
minomorf (12.10.09 19:17) [10]А на что указывает Socket.Data?
-
Сергей М. © (12.10.09 19:23) [11]На что захочешь, на то и укажет.
Это пользовательское св-во. -
minomorf (12.10.09 21:15) [12]Отлично, догда я пожалуй в data опишу число, типа если оно > delay то отрубаемся, если = authorize то ничего не делаем, а в таймере задаем обход всех сокетов с инкрементом data.
-
Сергей М. © (12.10.09 21:22) [13]
> minomorf (12.10.09 21:15) [12]
Ну да, примерно так. -
bananas © (09.06.10 04:20) [14]у меня схожая задача.
скажите, как отключить конкретного пользователя?
Допустим подключено 20 клиентов, их ip хранятся в БД. Нужно отключить клиента с ip одним из БД.
Отключить именно серверсокетом, ибо на клиенте ничего писать нельзя. Я пока кроме отключения всего серверсокета (что, как я полагаю, отключит всех клиентов) ничего не нашел.. -
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 (14.06.10 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 -
Сергей М. © (14.06.10 18:30) [17]
> ArtGre (14.06.10 18:01) [16]
Можно.
Ни в чем. -
Anatoly Podgoretsky © (14.06.10 18:36) [18]> ArtGre (14.06.2010 18:01:16) [16]
Отличий нет. Код одинаково пригоден. -
ArtGrek (14.06.10 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 (14.06.10 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 (14.06.10 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 -
Сергей М. © (14.06.10 21:16) [22]
> opitnix kriptografov
К конференции "Сети" криптография не имеет отношения. -
ArtGrek (14.06.10 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 (14.06.10 21:32) [24]eshe ne razobralsia v stryktyre protokola, razberetes?
-
Eraser © (15.06.10 03:20) [25]
-
Сергей М. © (15.06.10 10:39) [26]
> razberetes?
Оно нам надо ? -
ArtGrek (15.06.10 13:05) [27]
> Оно нам надо ?
o cene dogovorimsia -
ArtGrek (18.06.10 23:21) [28]net jelaushix podzarabotat)?
-
bananas © (21.06.10 06:52) [29]Slym
Спасибо))
Извиняюсь за долгий ответ, обстоятельства..