![]() |
|
Модераторы: Snowy, Poseidon, MetalFan |
![]()
|
|
| _Rin |
|
|||
![]() Новичок Профиль Группа: Участник Сообщений: 48 Регистрация: 12.9.2006 Репутация: нет Всего: нет |
Пишу чат на Indy.
Клиенты посылают сообщения серверу. Сервер выводит их у себя в Memo-поле с указанием от кого пришло. Как серверу переслать сообщение, пришедшее от одного клиента, всем другим клиентам, чтобы они тоже могли вывести его у себя на форме. Помогите плизз!!! http://forum.vingrad.ru/html/emoticons/qstn.gif |
|||
|
||||
| Snowy |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 11363 Регистрация: 13.10.2004 Где: Питер Репутация: 53 Всего: 484 |
Посмотри темы внизу страницы.
|
|||
|
||||
| _Rin |
|
|||
![]() Новичок Профиль Группа: Участник Сообщений: 48 Регистрация: 12.9.2006 Репутация: нет Всего: нет |
Смотрела. Но все равно не понимаю.
Столкнулась с Indy первый раз. Есть обработчик TCPServerExecute(AThread: TIdPeerThread); Сервер получает сообщение от одного клиента, выводит его в Memo, а затем шлет ответ этому клиенту о том, что все принял правильно. Как сделать так, что бы это сообщение могли получить и другие клиенты, подсоединеные в данный момент к серверу (я знаю их IP и порты). http://forum.vingrad.ru/html/emoticons/stena.gif |
|||
|
||||
| Alexeis |
|
|||
![]() Амеба Профиль Группа: Админ Сообщений: 11743 Регистрация: 12.10.2005 Где: Зеленоград Репутация: 2 Всего: 459 |
_Rin, Пробовала использовать адрес типа 192.168.0.255
такие сообщения обычно идут всем клиентам диапазона 192.168.0.0 - 192.168.0.254 -------------------- Vit вечная память. Обсуждение действий администрации форума производятся только в этом форуме гениальность идеи состоит в том, что ее невозможно придумать |
|||
|
||||
| Snowy |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 11363 Регистрация: 13.10.2004 Где: Питер Репутация: 53 Всего: 484 |
У TIdTCPServer есть свойство Bindings - это и есть массив подключенных клиентов.
Выбирай нужного и шли что хочешь. |
|||
|
||||
| _Rin |
|
|||
![]() Новичок Профиль Группа: Участник Сообщений: 48 Регистрация: 12.9.2006 Репутация: нет Всего: нет |
Спасибо за помощь, я нашла подходящий пример и во всем разобралась.
Но возникла новая проблема. Пытаюсь подключится к серверу, и периодически возникает ошибка Connection Closed Gracefully. (именно периодически, клиент может подсоединится и нормально, без ошибок). В чем может быть причина, и как её устранить. Код клиента:
Это сообщение отредактировал(а) Snowy - 13.9.2006, 15:01 |
|||
|
||||
| Snowy |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 11363 Регистрация: 13.10.2004 Где: Питер Репутация: 53 Всего: 484 |
Модератор: Пожалуйста, используйте кнопку "Код" для выделения кода
А то я уже устал править за Вами все сообщения. Смысл ошибки - не удалось подключиться. Возможно сервер занят или у него ограничение по количеству подключений, или он просто не работает. |
|||
|
||||
| _Rin |
|
|||
![]() Новичок Профиль Группа: Участник Сообщений: 48 Регистрация: 12.9.2006 Репутация: нет Всего: нет |
Ладушки: буду использовать Кнопку "Код".
На счет сервера: - сервер работает (свойство Active - устанавливаю в true) - сообщение может выскочить, даже если подключается первый клиент (то есть никаких других подключений у сервера нет). - ограничений на количество подоключений тоже нет. Не знаю, в чем дело. |
|||
|
||||
| Snowy |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 11363 Регистрация: 13.10.2004 Где: Питер Репутация: 53 Всего: 484 |
Аналогично.
Может у сервера плохое настроение, голова болит... Ну не хочет он принимать подключение. Можно попробовать делать 3 попытки подключения вместо одной. А так - гадание на кофейной гуще. Здесь всё совсем не очевидно. Самая сложная в отлове ошибка - нестабильная. Может выскочить, а может и нет... |
|||
|
||||
| _Rin |
|
|||
![]() Новичок Профиль Группа: Участник Сообщений: 48 Регистрация: 12.9.2006 Репутация: нет Всего: нет |
Все заработало.
Ошибка была на строне сервера. Выделение памяти надо было делать не GetMem/Free, а New/Dispose. |
|||
|
||||
![]()
|
| Правила форума "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. |