|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
|
Опции темы | Поиск в этой теме |
17.04.2008, 15:34 | #11 | |
Инженер ИС
Старожил
Регистрация: 13.12.2006
Сообщений: 2,671
|
Цитата:
ListView1 - UserListView ListBox1 - UserListBox Попробуйте заменить код на UserList.ItemIndex
Руководитель проекта MMO 2D RPG: Настоящее имя Денис Стрижак (10.05.1981-6.02.2019) Мир духу его
|
|
17.04.2008, 22:20 | #12 |
Пользователь
Регистрация: 17.04.2008
Сообщений: 22
|
Помогите: я немного усовершенствовал чат(дабавил работу с лок. сетью); но только теперь понял, что не знаю, какой ip писать для интернет-чата. Что он(ip) должен содержать(если для лок. сети это, к примеру 192.168.0.255) и как с ним работать.
Просто в основном, при тестах возникала ошибка 10060 или 10061 и все мои попытки разобраться с этим ни привели не к чему. |
18.04.2008, 00:14 | #13 |
Инженер ИС
Старожил
Регистрация: 13.12.2006
Сообщений: 2,671
|
Если вы в локальной сети, вы вводите локальный адрес 192.168.*.* , если нужно через Интернет, то в то же поле вводите внешний IP-адрес, ...это тот, что вам дает провайдер, когда вы выходите в интернет, ...смотрите адрес в свойствах сети.
Если ваш провайдер скрывает внешний IP другим (шлюзы, маршрутизаторы), то вы сможете быть только клиентом, ...сервер должен иметь прямой Интернет IP-адрес.
Руководитель проекта MMO 2D RPG: Настоящее имя Денис Стрижак (10.05.1981-6.02.2019) Мир духу его
|
18.04.2008, 09:07 | #14 |
Пользователь
Регистрация: 17.04.2008
Сообщений: 22
|
Как реализовать бан по ip? То есть, нужен файл с которым будет сверяться сервер(находится-ли данный ip в бане, и на сколько). Есть проблема: не знаю, как узнать Ip того, кто прислал сообщений).
Как создать защищёный паролем канал? т.е. чтоб на сервер можно было ходить только с паролем. Точнее, чтоб если на сервере стоит допуск юзера через пароль, то появлялось окошко с сообщением о вводе пароля, а если нет, то соотв., не появлялось. Далее: как можно "пометить" чат(дать ему название на сервере)? т.е. может быть много серверов в сети и чтоб всех их можно было найти через клиент(вывести список серверов и их ip). Последний раз редактировалось DeCoder; 18.04.2008 в 10:17. |
18.04.2008, 15:20 | #15 | |||
Инженер ИС
Старожил
Регистрация: 13.12.2006
Сообщений: 2,671
|
Модернизация...
Цитата:
IP пользователя можно узнать так ServerSocket.Socket.Connections[i].RemoteAddress; , блокировать канал можно через ServerSocket.Socket.Connections[i].Lock; , обратная ServerSocket.Socket.Connections[i].Unlock;, или вообще принудительно закрыть канал ServerSocket.Socket.Connections[i].Close; Цитата:
Цитата:
Руководитель проекта MMO 2D RPG: Настоящее имя Денис Стрижак (10.05.1981-6.02.2019) Мир духу его
|
|||
21.04.2008, 10:25 | #16 |
Пользователь
Регистрация: 17.04.2008
Сообщений: 22
|
Спасибо за помошь!
Можно-ли сделать, чтобы ip клиента было видно серверу в самом чате возле его ника? Пробовал - получилось не то - ip видно тогда всем пользователям. т.е. необходимо, чтобы сервер при получении сообщения определял ip того, от кого оно пришло. В локальном чате всё гораздо проще... Бан... "ServerSocket.Socket.Connection s[i].Lock;" - куда писать ip? Не знаю, может, я чего не понимаю... Как происходит сам бан? Из этой записи я понял, что закрывается подключение. Но как клиент определит, кому именно послано такое сообщение? Хм... А что, если упостить задачу: клиент подключается к серверу, а тот, в свою очередь, отправляет клиенту данные о дуступных серверах чата(cамо ip чата(юзер не будет видеть его), название, тип доступа(пароль и т.п.). Тогда прийдётся изменить немного сам чат. Т.е. при подключении на данный адрес, сервер отправляет данные о комнатах, ноходящихся на нём. Как "обрезать" сообщения? т.е. "enter" на конце и пробелы вначале. А то пытабсь сделать отправку сообщения по нажатию "enter" и происходит печатание этой кнопки в тексте. Код:
З.Ы.(1) Я тут подумал... Может быть ведь много разных сервов с разными адресами... Что если сделать так: создать единый главный сервер, на котором будет БД, в которую будет вноситься информация о создании нового меньшего сервера, т.е. во всех сервер-клиентах будет указан ip, на который отправлять информацию о состоянии сервера(активен/нет, сколько человек на сервере, какие разделы/комнаты существуют и т.п.). Т.е. клиенту не нужно будет самому "сканировать" сеть в поисках доступных серверов, это будет делать главный сервер. Клиенту останется только подключиться к нему и узнать необходимую информацию. З.Ы.(2) Траблы с SendText'ом. Происходит изменения свойства caption формы - это возможно исправить? На сервере caption формы вообще пропадает. Я заметил, что и в исходниках статьи тоже самое с заголовком. Последний раз редактировалось DeCoder; 21.04.2008 в 14:37. Причина: Новый вопрос |
21.04.2008, 14:50 | #17 | |||
Инженер ИС
Старожил
Регистрация: 13.12.2006
Сообщений: 2,671
|
Комментарии...
Цитата:
А если главный сервер случайно или по техническим причинам окажется отключенным, а прочие сервера будут работать? ...не сложно понять, что никакой информации в этом случае пользователь не получит, равно как и возможность пользоваться программой. Цитата:
Цитата:
Используйте восстановление заголовка (назначьте сново заголовок) в конце таймера сканирования у сервера и чтения пакета у клиента.
Руководитель проекта MMO 2D RPG: Настоящее имя Денис Стрижак (10.05.1981-6.02.2019) Мир духу его
|
|||
21.04.2008, 16:02 | #18 | ||||
Пользователь
Регистрация: 17.04.2008
Сообщений: 22
|
Цитата:
Цитата:
Цитата:
Я не знаю... Можт блокировать заголовок от изменения как-нибудь?)) А то юзерам, думаю, такая дискотека ни к чему.) Последний раз редактировалось DeCoder; 21.04.2008 в 16:12. |
||||
21.04.2008, 17:30 | #19 | ||||
Инженер ИС
Старожил
Регистрация: 13.12.2006
Сообщений: 2,671
|
Цитата:
Цитата:
Запись ServerSocket.Socket.Connections[i].Lock; говорит о том, что канал под номером i будет заблокирован, и клиент находящийся на этом канале не сможет отправлять по нему данные. Куда вписать IP? ...у вас же есть список пользователей, вы просто выбираете пользователя и записываете в БД, что этот пользователь должен быть заблокирован. Теперь, что происходит при подключении этого клиента. Он заходит, ему дается канал (очередной i), пока он неизвестный, ...вводит свой ник и пароль, ...сервер регистрирует его как пользователя (записывает с список присутствующих), ... проверяет БД, если этот пользователь должен быть блокирован, то сервер смотрит список, находит ник, узнает канал, отправляет пользователю соответствующее сообщение, блокирует канал, делает пометку в списке (меняет картинку на другую), отсылает всем остальным индекс новой картинки "пользователь в блоке". Вы блокируете зарегистрированного пользователя, блочить IP бесполезно, поскольку он может меняться очень часто, достаточно переподключить Интернет. Цитата:
Руководитель проекта MMO 2D RPG: Настоящее имя Денис Стрижак (10.05.1981-6.02.2019) Мир духу его
|
||||
25.04.2008, 07:07 | #20 |
Пользователь
Регистрация: 01.06.2007
Сообщений: 59
|
Подскажите пожалуйста как получить индекс выделяемого элемента в ListBox
|
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
обновление в блоге - Создание клиент-сервера | 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 |