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

Вниз

Авторизация через TServerSocket   Найти похожие ветки 

 
KuH   (2008-05-19 15:29) [0]

Идея такова. Есть сервер, к которому конектятся клиенты. Если клиент не будет авторизирован сервером в течении некоторого периода времени, то соеденение закрывается. Информация о статусе авторизации храниться в отдельном массиве. При отключении клиента сервером, все работает нормально. Соеденение закрываеться, массив смещаеться на одну позицию.

Проблема:
Немогу определить номер соединения TServerSocket.Socket.Connection[i] при отключении со стороны клиента. Уважаемые мастера, подскажите как это сделать! Возможно, мой подход к авторизации вовсе неверен? Заранее спасибо.


 
Сергей М. ©   (2008-05-19 16:23) [1]


> Немогу определить номер соединения


В большинстве случаев он вообще нафиг не нужен.

Если инициатором разрыва соединения является клиент, то на стороне сервера возбуждается событие OnClientDisconnect, в обработчик которого параметром Socket передается ссылка на объект TCustomWinSocket, ассоциированный с разрываемым соединением.

Ссылка на ЭТОТ ЖЕ объект в момент обработки этого события фигурирует в списке Connections. Это позволяет определить индекс этоой ссылки в этом списке простым циклическим перебором списка, где в каждой итерации происходит сравнение значения параметра Socket c i-м элементом списка.


 
Сергей М. ©   (2008-05-19 16:31) [2]


> Информация о статусе авторизации храниться в отдельном массиве


Это лишнее.
Можно вполне обойтись без этого массива.


 
KuH   (2008-05-19 16:46) [3]

Мне этот массив нужен еще и для других целей. А за совет спасибо, сейчас попробую. Еще сразу такие вопросы:

-Подскажите исходники програм, в которой хорошая реализация архитектуры Сервер-Клиент на базе сокетов
-Как правильно отсеять левые пакеты?


 
Сергей М. ©   (2008-05-19 16:57) [4]


> Мне этот массив нужен еще и для других целей


Для каких ?


> исходники програм, в которой хорошая реализация архитектуры
> Сервер-Клиент на базе сокетов


Нет таких.
Все зависит от конкретной прикладной задачи.
Говорить об этом абстрактно бессмысленно.


> Как правильно отсеять левые пакеты?


Что еще за "левые" ?


 
KuH   (2008-05-19 17:34) [5]

1) Например, информация с логином и паролем каждого соеденения храниться в нем

2) В статьях написано в общем, а мне надо более углубленно. В чьихто исходниках я надеюсь подчерпнуть много информации, о том как правильно разрабатывать такую архитектуру, не хочу заново изобретать велосипед, у меня будет много ошибок. Конкретно меня интересует процедура логина к серверу и защита от несанкционированого взлома

3)Левые - это те, которыми кул-хацкеры могут "положить" мой сервер, отправив большой или неправильный пакет. Я в сетевом программировании новенький, поэтому незнаю как методов взлома, так и методов защиты. Не сложно будет узнать порт и АйПи сервера и отправлять на него все, что угодно. Я так понимаю, что это самый распространенный способ вредительства


 
Сергей М. ©   (2008-05-19 20:51) [6]


> 1)


Массив для этого не нужен, еще раз повторяю.

Каждый объект класса TClientWinSocket имеет св-во Data, которое м.б. использовано для хранения любой доп.инф-ци о соединении.

Эти объекты организованы в тот самый список Connections.

Дальше шевели мозгами сам ... Намек был уж куда прямее ..


> меня интересует процедура логина к серверу и защита от несанкционированого
> взлома


Все это не имеет отношение к транспортному уровню, который представляют эти компоненты.


>
> 3)Левые - это те, которыми кул-хацкеры могут "положить"
> мой сервер, отправив большой или неправильный пакет


Если они могут тебя "положить", значит твоя реализация прикладного протокола никуда не годится.


> Я в сетевом программировании новенький


Читать до полного просветления все касаемое "модель OSI" !!!


 
KuH   (2008-05-20 00:34) [7]

Спасибо за советы, буду изучать!



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

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

Наверх




Память: 0.49 MB
Время: 0.015 c
2-1257351706
_
2009-11-04 19:21
2009.12.27
Узнать информацию о видеокарточке.


1-1230778579
self
2009-01-01 05:56
2009.12.27
синхронное прокручивание 2х RxRichEdit ов


2-1257545435
Igorishe
2009-11-07 01:10
2009.12.27
передача метода


2-1257447516
Ivan
2009-11-05 21:58
2009.12.27
netsh с русскими символами


2-1257856549
Kolan
2009-11-10 15:35
2009.12.27
Самодельная отрисовка мигает