![]() |
|
Модераторы: Snowy, Poseidon, MetalFan |
![]()
|
|
| InseR |
|
||||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 57 Регистрация: 9.7.2007 Репутация: нет Всего: нет |
Я пишу чат на Delphi(использую сокеты).Предполагается,что чат должен иметь ListBox для вывода пользователей и Memo для вывода сообщений(приватные сообщения пока что не планируются).Так вот,когда я дошел до того момента,когда надо было реализовать список пользователей,то решил сделать такую систему:При соединении с сервером,клиент сразу же отправляет свой ник вида ('#N'+nickname),сервер,получив данные делает проверку и если первые 2 символа = '#N', то эти символы удаляются,потом nickaname добавляется в ListBox на сервере,потом в начало добавляется '#U',а потом начинается цикл получения всех пользователей с сервера и отправка в цикле этих данных на все подключенные программы-клиенты.Клиенты,получив сообщение проверяют,если первые два символа равны = '#U', то отсекают это самое '#U' и начинают цикл добавления пользователей в ListBox.Простые сообщения отсылаются по такому же принципу,но с пометкой '#M'.Если просто реализовать отправку сообщений через '#M',то все идет нормально,а вот если добавить код,отвечающий за формирование списка пользователей,то неработает ни отправка сообщений,ни собственно и формирование списка пользователей.Помогите пожалуйста решить проблему.
Вот фрагмент кода с сервера и клиента: Сервер:
Клиент:
|
||||
|
|||||
| MetalFan |
|
|||
![]() Аццкий Сотона ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 3815 Регистрация: 2.10.2006 Где: Moscow Репутация: 14 Всего: 128 |
масло маслянное? нумерация элементов в списке идет с нуля и заканчивается Count-1. -------------------- There are always someone smarter than you... |
|||
|
||||
| InseR |
|
||||||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 57 Регистрация: 9.7.2007 Репутация: нет Всего: нет |
Код переписал,простые сообщения работают нормально,а вот с формированием списка ников по прежнему проблемы.
Процедура соединения с сервером:
Процедура прослушывания каналов на сервере(используется Timer):
И наконец процедура принятия сообщений от сервера:
Проблема только в формировании списка пользователей.Из кода видна попытка реализации: 1 При подключении,клиент шлет свой ник и идентификатор '#N'. 2 Получая сообщение,сервер обрабатывает его и если находит в строке первые два символа вида '#N', то удаляет их,добавляет пользователя в ListBox,затем формирует цикл и отправляет данные клиентам с пометкой '#U'. 3 Приняв данные,клиент ищет пометку '#U' и если находит,то формирует свой ListBox. Почему то данный алгоритм не работает.Помогите плиз. Это сообщение отредактировал(а) InseR - 14.4.2008, 10:33 |
||||||
|
|||||||
| MetalFan |
|
|||
![]() Аццкий Сотона ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 3815 Регистрация: 2.10.2006 Где: Moscow Репутация: 14 Всего: 128 |
и каков признак его неработоспособности? -------------------- There are always someone smarter than you... |
|||
|
||||
| InseR |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 57 Регистрация: 9.7.2007 Репутация: нет Всего: нет |
||||
|
||||
| MetalFan |
|
|||
![]() Аццкий Сотона ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 3815 Регистрация: 2.10.2006 Где: Moscow Репутация: 14 Всего: 128 |
и что говорит отладчик?
-------------------- There are always someone smarter than you... |
|||
|
||||
| InseR |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 57 Регистрация: 9.7.2007 Репутация: нет Всего: нет |
Вообщем я думаю проблема в этом участке кода:
Но вот как именно его переписать незнаю... |
|||
|
||||
| InseR |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 57 Регистрация: 9.7.2007 Репутация: нет Всего: нет |
Проблему устранил.....
|
|||
|
||||
![]()
|
| Правила форума "Delphi: Сети" | |
|
|
Запрещено: 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делится вскрытыми компонентами
Если Вам помогли и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, Snowy, Poseidon, MetalFan. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Delphi: Сети | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |