Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Работа с сетью в Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 30.11.2008, 02:04   #1
Pall
 
Регистрация: 30.11.2008
Сообщений: 3
По умолчанию tcp сервер

Помогите разобраться с indy. Сервер получает по DDE информацию от другой программы и должен рассылать ее клиентам. Как совместить изменившуюся информацию и отправку данных клиентам? Нужно при получении новых данных по DDE вызывать AThread.Connection.WriteLn при этом запихнуть их в соответствующий поток(соответствующий обновленной инфе). Посоветуйте как реализовать.
Pall вне форума Ответить с цитированием
Старый 01.12.2008, 09:37   #2
Квэнди
Старожил
 
Аватар для Квэнди
 
Регистрация: 13.12.2006
Сообщений: 3,859
По умолчанию

ну хранить открытыми активные сетевые сессии совсем не вариант, поэтому ваша фраза
Цитата:
запихнуть их в соответствующий поток(соответствующий обновленной инфе)
несколько странна. При получении новой информации вам придется инициализировать новую сессию с клиентом ( тут быстрее встает у вас вопрос выбора клиента, которому необходимо отдать эту информацию ? ) и уже в ней её передавать. А хранение клиентов и их характеристик для выбора правильного осуществляется отдельно.
ICQ не для вопросов, а для предложений. Для вопросов используйте форум
IRC канал клуба программистов|Мои статьи
Квэнди вне форума Ответить с цитированием
Старый 02.12.2008, 14:01   #3
Pall
 
Регистрация: 30.11.2008
Сообщений: 3
По умолчанию

Получается каждую секунду надо будет соединяться с клиентом раз по 5, чтобы отправить ему короткую строку. А как вставить в DDE onChange отправку данных клиенту? Спасибо
Pall вне форума Ответить с цитированием
Старый 02.12.2008, 14:05   #4
Квэнди
Старожил
 
Аватар для Квэнди
 
Регистрация: 13.12.2006
Сообщений: 3,859
По умолчанию

заполнить соответствующие поля (port и host )в idTcpServer , подсоединиться к клиенту и отправить
ICQ не для вопросов, а для предложений. Для вопросов используйте форум
IRC канал клуба программистов|Мои статьи
Квэнди вне форума Ответить с цитированием
Старый 02.12.2008, 14:43   #5
Pall
 
Регистрация: 30.11.2008
Сообщений: 3
По умолчанию

IdTCPServer1.Bindings.Clear;
bind:=TIdSocketHandle.Create(IdTCPS erver1.Bindings);
bind.IP:='127.0.0.1';
bind.Port:=8090;
IdTCPServer1.Active:=true;

Взял из твоего примера. А как вызвать отправку?
Pall вне форума Ответить с цитированием
Старый 02.12.2008, 15:35   #6
Квэнди
Старожил
 
Аватар для Квэнди
 
Регистрация: 13.12.2006
Сообщений: 3,859
По умолчанию

свойство bindings отвечает за настройки сокета для прослушивания на локальной машине а не для обращения к удаленным клиентам, для полседнего есть свойства host и port компонента IdTcpServer
ICQ не для вопросов, а для предложений. Для вопросов используйте форум
IRC канал клуба программистов|Мои статьи
Квэнди вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
TCP Delphi ccooooll Работа с сетью в Delphi 2 27.11.2008 23:13
tcp и игра ben95 Работа с сетью в Delphi 3 16.04.2008 21:40
простой сервер(клиент) TCP nntpaha Общие вопросы C/C++ 4 25.12.2007 19:02
Спуффинг(TCP/IP) AshMash Работа с сетью в Delphi 0 13.08.2007 23:35