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

Вниз

Авторизация через 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;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.46 MB
Время: 0.005 c
2-1257447516
Ivan
2009-11-05 21:58
2009.12.27
netsh с русскими символами


8-1172599000
shart
2007-02-27 20:56
2009.12.27
Удаление шума на изображении


1-1230616083
Karburator
2008-12-30 08:48
2009.12.27
сложное заглавие таблицы


2-1257580554
FIL-23
2009-11-07 10:55
2009.12.27
Трехмерное рисование графиков


15-1256894913
ford
2009-10-30 12:28
2009.12.27
парсить web страницы посоветуйте





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский