|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
01.06.2010, 22:37 | #401 |
Участник клуба Подтвердите свой е-майл
Регистрация: 26.01.2008
Сообщений: 1,897
|
Хочу сделать простую админку. Вот как она будет работать.
Будет создан массив с IP на подобии как у бан. При конекте будет производиться сверка IP, если такой есть, то отсылаем клиенту команду, допуска к админке. У клиента в свою очередь появятся два новых пункта в меню: Забанить и разбанить. Как всё будет работать. Клиент в своём списке выбирает ник и жмёт забанить. Далее формируем строку: код команды + (разделитель) + ник забанившего + (разделитель) + ник забаненного. Сервер получив всё это дело приступает к поиску ника, найдя его он берёт IP (с учётом того, что помимо ника в списке юзеров имеют IP) и отправляет на него команду бана и рассылает всем юзерам уведомление о бане. Такая же система с разбаном. Вопросы: 1. Данную задачу реально выполнить на данном чате 2. Проверку производить на наличие админки в коде приема ника клиента, как и с баном |
02.06.2010, 00:46 | #402 | |
Инженер ИС
Старожил
Регистрация: 13.12.2006
Сообщений: 2,671
|
Цитата:
2. Пусть клиент, если он может быть админом, посылает на сервер свой ник и пароль, ...сервер кроме этих двух параметров проверит и IP-адрес, ...если все 3 параметра совпадут для удаленного администрирования, то впускать клиента и сделать ему пометку, что он админ (запись, создайте как нужно вам), сервер принимая определенного типа команды, как управленческие, проверяет "на админа" клиента, что их посылает. Только не забывайте очищать записи при каждом входе и выходе клиентов, иначе все постепенно "станут" админами.
Руководитель проекта MMO 2D RPG: Настоящее имя Денис Стрижак (10.05.1981-6.02.2019) Мир духу его
|
|
02.06.2010, 00:59 | #403 |
Участник клуба Подтвердите свой е-майл
Регистрация: 26.01.2008
Сообщений: 1,897
|
У меня всё будет определяться только по IP. Клиенты будут получать админку проходя через
Код:
Последний раз редактировалось Shouldercannon; 02.06.2010 в 04:23. |
02.06.2010, 16:06 | #404 | |||
Инженер ИС
Старожил
Регистрация: 13.12.2006
Сообщений: 2,671
|
Цитата:
В ServerSocketClientConnect должна быть только служба блокирования нежелательных IP-адресов, т.е. если пользователя ни при каких условиях нельзя запускать (тот же ддосер например). Цитата:
Код:
Цитата:
Руководитель проекта MMO 2D RPG: Настоящее имя Денис Стрижак (10.05.1981-6.02.2019) Мир духу его
|
|||
02.06.2010, 18:32 | #405 | |
Участник клуба Подтвердите свой е-майл
Регистрация: 26.01.2008
Сообщений: 1,897
|
Цитата:
И я никак не могу понять почему если на одного юзера посылаются две команды (бан и админ), то у него не заполняется UserListView при данном Код:
Последний раз редактировалось Shouldercannon; 02.06.2010 в 18:40. |
|
02.06.2010, 21:29 | #406 |
Инженер ИС
Старожил
Регистрация: 13.12.2006
Сообщений: 2,671
|
По поводу отправки с сервера после того как клиент ответил на запрос сервера на идентификацию:
Код:
Почему не заполняется лист? ...давайте посмотрим на такт таймера. Значит после срабатывания у сервера пункта 1: сервер пытается отослать сразу два пакета по 1 байту, которые соединяются в один двухбайтовый, ...смотрим ниже, в конце такта срабатывает флаг на обновление списка, запускается процедура UpdateUserList, котора готовит пакет с кодом 2+строка пользователей, ...а мы помним, что это еще тот же такт, значит к двухбайтовому пакету "48" добавляется пакет "2+строка", т.е. фактически с сервера уходит пакет "482+строка пользователей", ...не удивительно, что клиент не обновляет список, он ждет просто "2+строка пользователей". Все управленческие команды должны быть отвязаны от команд на идентификацию. Пункт 1: принадлежит к такого рода командам, в нем не должно быть никаких отправок клиентам. Что делать? ...в пункте 1: таймера сервера проверка на бан и админа, но только исключительно в записях массива пользователя, ничего не отсылая. Клиент должен нажимать некую клавишу "я админ" и присылать запрос под некоторым кодом. У сервера этот пункт должен начинаться с проверки записи Admin, если она ложная, слать ему сообщение, что он не может быть админам, кроме того любой запрос клиента на сервер должен проверяться на бан (кроме "1"), ...если забаненый клиент входит, он принимается как обычный пользователь, тут же проводится проверка на админа и бан, условия срабатывают, изменяются статусы, сервер шлет всем список пользователей, в котором уже числится кто админ, кто забанен. Как только клиент попытается прислать сообщение, если он забанен, условие проверки по флагу вышлет ему команду на блокировку. Если он не забанен, но админ, его нажатие на кнопку "я админ" пошлет на сервер запрос по некоторой команде, сервер проверит запись на админа, отошлет ему сообщение что он админ, может откроет ему формочку дополнительную, и все команды с нее всегда будет проверять на флаг админа. Понятно?
Руководитель проекта MMO 2D RPG: Настоящее имя Денис Стрижак (10.05.1981-6.02.2019) Мир духу его
Последний раз редактировалось Beermonza; 02.06.2010 в 21:35. |
02.06.2010, 21:53 | #407 | |
Участник клуба Подтвердите свой е-майл
Регистрация: 26.01.2008
Сообщений: 1,897
|
Цитата:
Код:
Последний раз редактировалось Shouldercannon; 02.06.2010 в 21:57. |
|
02.06.2010, 22:46 | #408 | |
Инженер ИС
Старожил
Регистрация: 13.12.2006
Сообщений: 2,671
|
Цитата:
Руководитель проекта MMO 2D RPG: Настоящее имя Денис Стрижак (10.05.1981-6.02.2019) Мир духу его
|
|
03.06.2010, 00:21 | #409 | ||
Участник клуба Подтвердите свой е-майл
Регистрация: 26.01.2008
Сообщений: 1,897
|
Цитата:
Цитата:
Я конкретно напортачил в коде и походу не правильно реализовал отправку команд бар/разбан для удалённого управления. Запустил сервер и пять клиентов. Забанил с третьего клиента одного из юзеров в этого получилось месиво и после поочерёдного выхода клиентов опять отсылается 4, потом 82+строка пользователей. Последний раз редактировалось Shouldercannon; 03.06.2010 в 15:01. |
||
03.06.2010, 16:05 | #410 |
Инженер ИС
Старожил
Регистрация: 13.12.2006
Сообщений: 2,671
|
Пакеты, состоящие из повторяющихся секций, означают только одно - программист не следит за открытием и закрытием секций циклов. Обратите внимание на число повторений, их 5, и клиентов 5, какой-то цикл вобрал в себя не свою секцию кода.
Я всегда советую соблюдать дистанцию, грамотно расставлять строки. Вне специальных структур строки должны идти с одним и тем же отступом, отступ делается только тогда, когда секция кода находится в промежутке Begin..End, все циклические структуры, имеющие внутри себя более одной строки, всегда заключаются в Begin..End: Код:
Код:
Код:
Вернемся к вашей проблеме, вот участок кода: Код:
Продолжение в следующем сообщении...
Руководитель проекта MMO 2D RPG: Настоящее имя Денис Стрижак (10.05.1981-6.02.2019) Мир духу его
Последний раз редактировалось Beermonza; 03.06.2010 в 16:41. |
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
обновление в блоге - Создание клиент-сервера | Pblog | Обсуждение статей | 0 | 03.10.2007 17:12 |
обновление в блоге - Диплом. Создание и продвижение сайта - готовь сани летом, а дипл | Pblog | Обсуждение статей | 0 | 31.08.2007 20:00 |
обновление в блоге - USB Холодильник | Pblog | Обсуждение статей | 0 | 25.06.2007 14:13 |
обновление в блоге - О ярлыках | Pblog | Обсуждение статей | 0 | 27.05.2007 03:17 |