![]() |
Модераторы: Snowy, Poseidon, MetalFan |
![]() ![]() ![]() |
|
SneG0K |
|
|||
![]() Max Mara ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1887 Регистрация: 1.12.2007 Где: Wis Dells Репутация: 2 Всего: 54 |
Меня интересует такой вопрос!!! Я пишу программу-сервер к ней будет подключатся несколько клиентов юзеров и один клиент админ!
Использую TClientSocket и TServerSocket! Меня интересует, как определить, что подключился клиент админ и как определить сколько сейчас клиентов подключено к серверу??? ![]() |
|||
|
||||
Exai1e |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 908 Регистрация: 3.12.2006 Где: Moscow Репутация: нет Всего: 30 |
Примерно:
Кто подключился может проверить командой к примеру подключается клиент отсылается команда на сервер 'IAmClient' а если админ то 'AImAdmin' сервер обрабатывает команды и отвечает на них. Кол-во юзеров примерно так: ServerSocket1.Socket.ActiveConnections(Примерно так, делфи под рукой нету. Это и есть кол-во активных подключений) p.s. почитай faq, книжки, туторы ![]() Это сообщение отредактировал(а) Exai1e - 19.12.2007, 21:51 -------------------- "Решение зависит от выбранного геморроя" © Snowy "у нас как в армии - либо работает, либо так и задумано" |
|||
|
||||
SneG0K |
|
|||
![]() Max Mara ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1887 Регистрация: 1.12.2007 Где: Wis Dells Репутация: 2 Всего: 54 |
По поводу Админского клиента! Как мне отправить данные именно на клиент админа??? И на клиенты Юзеров????? Надо, чтоб отдельно!!!
![]() Добавлено через 3 минуты и 12 секунд И еще сразу вопрос, чтоб левый топ не создавать!!! Я передаю на сервер строку 'Identification:Admin#0' --- так вот как мне сделать так, чтобы программа первые 15 символов проверяла и если они ровны слову Identification:то все, что после 15 символа заносила в переменную, до символа #0??? ![]() ![]() ![]() |
|||
|
||||
Coderr |
|
||||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 234 Регистрация: 27.1.2006 Где: Vesnet Репутация: нет Всего: 0 |
Добавлено через 8 минут и 13 секунд
Я бы создал специальный StringList, каждая строка которого - ip админа. Добавляешь в этот список во время коннекта клиента(проверка на 'Identification:Admin'). Если надо отправить админу - без проблем! У нас есть список. Просто сканируем его на наличие такого ip. PS Проверка на админа пакетом 'Identification:Admin' очень небезопасна. Я бы советовал передавать ещё и пароль зашифрованный. ![]() --------------------
Кодинг - это стиль жизни! |
||||
|
|||||
SneG0K |
|
||||
![]() Max Mara ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1887 Регистрация: 1.12.2007 Где: Wis Dells Репутация: 2 Всего: 54 |
Спасибо за совет... Учту
![]() Но вся проблема не в том, что я не могу идентифицировать админа, а в том что я не знаю как именно отправить данные на админа!
Это же сообщение отошлется всем подключенным клиетнам?! А мне надо чтоб только одномому! Я не могу понять как это делать ![]() Добавлено через 8 минут и 6 секунд Я не могу понять как именно данные отправить админу=(
Если так, то эта строка отправиться всем клиентам!(вродебы) А мне надо, чтобы именно на один клиент админа=) |
||||
|
|||||
Coderr |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 234 Регистрация: 27.1.2006 Где: Vesnet Репутация: нет Всего: 0 |
А в чём проблемы? Кинь на форму клиентный сокет и отправляй с него. У него есть полезные параметры: ip и порт =).
Пишешь отдельную процедуру:
Приблизительно так =) --------------------
Кодинг - это стиль жизни! |
|||
|
||||
Coderr |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 234 Регистрация: 27.1.2006 Где: Vesnet Репутация: нет Всего: 0 |
--------------------
Кодинг - это стиль жизни! |
|||
|
||||
SneG0K |
|
|||
![]() Max Mara ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1887 Регистрация: 1.12.2007 Где: Wis Dells Репутация: 2 Всего: 54 |
||||
|
||||
Coderr |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 234 Регистрация: 27.1.2006 Где: Vesnet Репутация: нет Всего: 0 |
Нет! НЕ ServerSocket, а ClientSocket!!!
--------------------
Кодинг - это стиль жизни! |
|||
|
||||
SneG0K |
|
|||
![]() Max Mara ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1887 Регистрация: 1.12.2007 Где: Wis Dells Репутация: 2 Всего: 54 |
А зачем клиентсокет??? С серверсокетом вроде б легче было
|
|||
|
||||
WaReZMEN |
|
||||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 683 Регистрация: 9.6.2006 Где: Россия, Санкт-Пет ербург Репутация: нет Всего: 3 |
Кол-во юзером узнается так
отправить нужному юзеру
по поводу аднима нужно делать авторизацию.... кстати, я тут тоже, что то подобное делал так вот лучше не ServerSocket ClientSocket а idTCPServer и idTCPClient (Вкладка indy Server и indy Client) юзать там попроще будет... Если интересно могу пример выложить... Это сообщение отредактировал(а) WaReZMEN - 26.12.2007, 01:40 |
||||
|
|||||
SneG0K |
|
|||
![]() Max Mara ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1887 Регистрация: 1.12.2007 Где: Wis Dells Репутация: 2 Всего: 54 |
||||
|
||||
Adver_Doiren |
|
|||
![]() Новичок Профиль Группа: Участник Сообщений: 6 Регистрация: 11.12.2007 Репутация: нет Всего: нет |
Как узнать? Можно массивчик завести Clients: array of string , в который при OnConnect добавлять, IP.
Получится , что ты по IP сможешь получить номер подключения через функцию типа:
А в OnDisconect запись из массива удалять. Другой вариант - у TCustomWinSocket есть свойство Data типа поинтер, можно в OnConnect его использовать. Имея номер пославшего, ты можешь послать сообщение всем клиентам КРОМЕ этого простым циклом с одним Ifом. Это сообщение отредактировал(а) Adver_Doiren - 26.12.2007, 11:55 |
|||
|
||||
SneG0K |
|
|||
![]() Max Mara ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1887 Регистрация: 1.12.2007 Где: Wis Dells Репутация: 2 Всего: 54 |
Спасибо... кажись понял
|
|||
|
||||
![]() ![]() ![]() |
Правила форума "Delphi: Сети" | |
|
Запрещено: 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делится вскрытыми компонентами
Если Вам помогли и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, Snowy, Poseidon, MetalFan. |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Delphi: Сети | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |