![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
Опции темы | Поиск в этой теме |
![]() |
#141 | |
Участник клуба Подтвердите свой е-майл
Регистрация: 26.01.2008
Сообщений: 1,899
|
![]()
Вот как сделал я
Есть Memo в который погружаются все забаненые IP В procedure TForm1.FormCreate(Sender: TObject); идет загрузка забаненых IP из файла Код:
Код:
Код:
procedure TForm1.ServerTimerTimer(Sender: TObject); Код:
Код:
Цитата:
Код:
Последний раз редактировалось Beermonza; 05.03.2010 в 23:47. |
|
![]() |
![]() |
![]() |
#142 |
Пользователь
Регистрация: 07.05.2009
Сообщений: 36
|
![]()
На стороне сервера как запретить одинаковые логины имена
Вобще ограничение на количество клиентов есть или нет Надеюсь код выше не даст при повторном подключении клиенту попасть в чат Последний раз редактировалось mnbvcxz11; 12.05.2009 в 18:21. |
![]() |
![]() |
![]() |
#143 |
Инженер ИС
Старожил
Регистрация: 13.12.2006
Сообщений: 2,671
|
![]()
Ограничений по каналам нет, в реале что-то в районе 30 тыс. но есть ограничение на списки и массивы, там установлен предел 255, значит 256 клиентов одновременно. Возможно расширение.
Если в бан-массиве есть IP-адрес злостного нарушителя, то он в чат не попадет, или если идет управление приложением, то попадет, но будет "заморожен". Одинаковые логины запрещаются системой регистрации, читайте теорию выше.
Руководитель проекта MMO 2D RPG: Настоящее имя Денис Стрижак (10.05.1981-6.02.2019) Мир духу его
|
![]() |
![]() |
![]() |
#144 |
Пользователь
Регистрация: 07.05.2009
Сообщений: 36
|
![]()
Вопрос по коду это все писать надо в procedure TForm1.FormCreate(Sender: TObject);
В procedure TForm1.FormCreate(Sender: TObject); идет загрузка забаненых IP из файла Код: MBanIPs.Clear; MBanIPs.Lines.LoadFromFile((Extract FilePath(Application.ExeName))+'IPB anList.txt'); далее погружаем из Memo данные в массив Код: for n:=0 to MBanIPs.Lines.count-1 do BanMas[n]:=(MBanIPs.Lines[n]); В var Формы надо прописать Код: BanMas: array[0..255] of string; Далее при коннекте делаю проверку procedure TForm1.ServerTimerTimer(Sender: TObject); По ответу т.е. где выше на этой же странице или на другой Одинаковые логины запрещаются системой регистрации, читайте теорию выше. По ответу Выполните регистрацию как положено, с паролями. Для этого нужно создать тип команды в которой передается ник и пароль, через знак разделения. После приема сервером пакета регистрации, клиент входит, если ник совпадает или пароль неверный, то посылать ответный пакет под тем же ключом команды и так, пока не будут выполнены все условия. Ну вы сами все понимаете. Сложного ничего нет, начните, я помогу. Ответ: ник же уже есть Просто любой клиент может написать такой же ник Надо чтобы бы клиент не смог внести одинаковое имя в чате Последний раз редактировалось mnbvcxz11; 12.05.2009 в 19:17. |
![]() |
![]() |
![]() |
#145 | |
Участник клуба Подтвердите свой е-майл
Регистрация: 26.01.2008
Сообщений: 1,899
|
![]() Цитата:
Вопрос по коду это все писать надо в procedure TForm1.FormCreate(Sender: TObject); В procedure TForm1.FormCreate(Sender: TObject); идет загрузка забаненых IP из файла Код:
Код:
|
|
![]() |
![]() |
![]() |
#146 |
Пользователь
Регистрация: 07.05.2009
Сообщений: 36
|
![]()
Где то я читал на страницах вопрос про клиентов Оповещение активных
и неактивных Кто-нибудь проверял этот код рабочий (т.е.активные например зеленые(или) неактивные серые или по картинкам На свой вопрос ничего не нашол Надо чтобы бы клиент не смог внести одинаковое имя в чате |
![]() |
![]() |
![]() |
#147 | |
Инженер ИС
Старожил
Регистрация: 13.12.2006
Сообщений: 2,671
|
![]() Цитата:
Начните ход мыслей по системе регистрации, там все дела с именами. mnbvcxz11, пользуйтесь кнопочкой "цитата".
Руководитель проекта MMO 2D RPG: Настоящее имя Денис Стрижак (10.05.1981-6.02.2019) Мир духу его
Последний раз редактировалось Beermonza; 13.05.2009 в 15:20. |
|
![]() |
![]() |
![]() |
#148 |
Пользователь
Регистрация: 07.05.2009
Сообщений: 36
|
![]()
По ответу
Т.е. автоматически работать небудет только вручную Надо чтобы бы клиент не смог внести одинаковое имя в чате Скажите хотя бы на какой странице смотреть |
![]() |
![]() |
![]() |
#149 | |
Инженер ИС
Старожил
Регистрация: 13.12.2006
Сообщений: 2,671
|
![]() Цитата:
Смотрим клиента, процедура ClientSocketRead. В case видим, что по ключу у нас вот это: 1: ClientSocket.Socket.SendText('1'+Ni kEdit.Text);. Мы приняв запрос сервера на имя отправляем в ответ свой ник, тот, что ввели в поле NikEdit.Text до подключения. Теперь посмотрим дальше, что делает сервер приняв команду с ключом "1". Процедура ServerTimerTimer. В case по ключу числится вот это: Код:
На клиентской стороне нужно в case добавить пункт "5:", в котором вызов некоторой заготовленной формочки, с полем для ввода ника и кнопочкой "Сменить никнейм". Команда подобна этой: 1: ClientSocket.Socket.SendText('1'+Fo rm3.NewNikEdit.Text);, т.е. мы снова шлем инициализацию, сервер снова выполняет проверку в массиве, не "наткнувшись" на совпадение, сервер записывает никнейм и обновляет список клиентов: Код:
Руководитель проекта MMO 2D RPG: Настоящее имя Денис Стрижак (10.05.1981-6.02.2019) Мир духу его
Последний раз редактировалось Beermonza; 13.05.2009 в 18:09. |
|
![]() |
![]() |
![]() |
#150 |
Пользователь
Регистрация: 07.05.2009
Сообщений: 36
|
![]()
Где эта самая картинка "Активность" она ведь автоматически должна реагировать
Каким образом картинка "Активность" и "Неактивность" будет включаться и отключаться Последний раз редактировалось mnbvcxz11; 13.05.2009 в 18:36. |
![]() |
![]() |
![]() |
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
обновление в блоге - Создание клиент-сервера | 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 |