Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 04.04.2018, 15:07   #1
Vidoc3000
 
Регистрация: 29.03.2018
Сообщений: 9
Вопрос ServerSocket свой-чужой

Подскажите как реализовать мою задумку.
Есть у меня проект чата и я хочу реализовать к нему проверку клиентов. Чтобы сервер при подключении клиента запрашивал у него информацию (клиентская часть автоматически отвечала на запрос), если она не верна или отсутствует, то подключение должно разорваться.
А то в открытый порт могут писать все кому не лень, а это не очень хорошо.
Хоть ссылку на статейку подкиньте, а то не нашел как лучше организовать...
Vidoc3000 вне форума Ответить с цитированием
Старый 04.04.2018, 15:44   #2
p51x
Старожил
 
Регистрация: 15.02.2010
Сообщений: 15,707
По умолчанию

Как хотите, так и организовывайте. Например, добавьте в протокол команду 1 с полями логин и пароль. До его прихода отправляйте код ошибки и если в течении какого-то времени не пришло - закрывайте соединение.
p51x вне форума Ответить с цитированием
Старый 04.04.2018, 15:51   #3
Vidoc3000
 
Регистрация: 29.03.2018
Сообщений: 9
По умолчанию

Цитата:
Сообщение от p51x Посмотреть сообщение
Как хотите, так и организовывайте. Например, добавьте в протокол команду 1 с полями логин и пароль. До его прихода отправляйте код ошибки и если в течении какого-то времени не пришло - закрывайте соединение.
Мне бы желательно пример. Ваш вариант к сожалению не подходит, мне нужно для чата. Если к серверу Putty подключить можно его знатно потролить...
Vidoc3000 вне форума Ответить с цитированием
Старый 04.04.2018, 16:04   #4
p51x
Старожил
 
Регистрация: 15.02.2010
Сообщений: 15,707
По умолчанию

Цитата:
Сообщение от Vidoc3000 Посмотреть сообщение
Ваш вариант к сожалению не подходит, мне нужно для чата.
Почему не подходит? Что в чате такого специфического?

Цитата:
Сообщение от Vidoc3000 Посмотреть сообщение
Если к серверу Putty подключить можно его знатно потролить
Нельзя
Цитата:
Сообщение от p51x Посмотреть сообщение
До его прихода отправляйте код ошибки и если в течении какого-то времени не пришло - закрывайте соединение.
p51x вне форума Ответить с цитированием
Старый 04.04.2018, 16:33   #5
Vidoc3000
 
Регистрация: 29.03.2018
Сообщений: 9
По умолчанию

Цитата:
Сообщение от p51x Посмотреть сообщение
Почему не подходит? Что в чате такого специфического?


Нельзя
К чему все это говорить? Я просил пример или ссылку на статью, а не размытые предположения...
Vidoc3000 вне форума Ответить с цитированием
Старый 04.04.2018, 16:35   #6
Pavia
Лис
Старожил
 
Аватар для Pavia
 
Регистрация: 18.09.2015
Сообщений: 2,409
По умолчанию

Цитата:
Сообщение от Vidoc3000 Посмотреть сообщение
Ваш вариант к сожалению не подходит, мне нужно для чата.
И чем же не подходит? Это же классика авторизации. Не хотите по паролю делайте по ключу. Первично делаете вход по паролю и пересылаете ключ, а при повторных заходах используете ключ для входа.
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
У дзен программиста программа делает то что он хотел, а не то что он написал .
Pavia вне форума Ответить с цитированием
Старый 04.04.2018, 16:46   #7
Vidoc3000
 
Регистрация: 29.03.2018
Сообщений: 9
По умолчанию

Цитата:
Сообщение от Pavia Посмотреть сообщение
И чем же не подходит? Это же классика авторизации. Не хотите по паролю делайте по ключу. Первично делаете вход по паролю и пересылаете ключ, а при повторных заходах используете ключ для входа.
Мне не нужна авторизация пользователей, мне просто важно чтобы доступ к серверу имели только клиентские приложения. Если я напрямую через Putty подключаюсь к порту... как мне запретить такое соединения?
Vidoc3000 вне форума Ответить с цитированием
Старый 04.04.2018, 16:51   #8
p51x
Старожил
 
Регистрация: 15.02.2010
Сообщений: 15,707
По умолчанию

ВАШЕ приложение оправляет ВАШ КЛЮЧ в пакете с КОДОМ 1, например. Путти его не отправит и его вырубит по таймауту. Это же простейшая логика.
p51x вне форума Ответить с цитированием
Старый 04.04.2018, 17:02   #9
Vidoc3000
 
Регистрация: 29.03.2018
Сообщений: 9
По умолчанию

Цитата:
Сообщение от p51x Посмотреть сообщение
ВАШЕ приложение оправляет ВАШ КЛЮЧ в пакете с КОДОМ 1, например. Путти его не отправит и его вырубит по таймауту. Это же простейшая логика.
Я же конкретно попросил пример или ссылку на статью, а не ответ типа "Сделай то не знаю что"...
Чтобы клиент отправил пакет он должен подключиться к серверу, а я хочу проверку на OnAccept сделать...
Vidoc3000 вне форума Ответить с цитированием
Старый 04.04.2018, 17:03   #10
Pavia
Лис
Старожил
 
Аватар для Pavia
 
Регистрация: 18.09.2015
Сообщений: 2,409
По умолчанию

Цитата:
Сообщение от Vidoc3000 Посмотреть сообщение
авторизация пользователей
Хорошо обзовём это не авторизацией, а аутентификацией. Алгоритм от этого не изменится.

Или если хотите упростить, то. Можно просто слать заголовок и проверять заголовок если совпадает, то это ваш клиент. Не совпадает разрываем соединение.
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
У дзен программиста программа делает то что он хотел, а не то что он написал .
Pavia вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
ServerSocket stalker1995s Общие вопросы Delphi 3 02.01.2013 13:17
Есть ли у IdTCPServer такое свойство как у ServerSocket: ServerSocket.Socket.ActiveConnectio ns? TwiX Работа с сетью в Delphi 3 07.03.2010 14:28
Чужой SysListView32 W0LF Win Api 1 24.02.2010 17:19
ServerSocket HTL Работа с сетью в Delphi 2 02.01.2010 22:40