Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

вопрос по indy client-server [D6, Win95/98]


Мыш ©   (2003-04-22 02:03:00) 

можно ли послать данные от сервера клиенту (как с обычными TclientSocket и TserverSocket) и если да, то как? А то как-то кажется не очень красиво использовать по паре компонентов клиент-сервер и на приложении клиенте и на приложении сервере.


$hade   (2003-04-23 15:50:00) [1]

2S@shka ©
раз клиент - значит можно и некрасиво делать? :-)
я имел ввиду стиль программирования...а не ошибку...
Чую я бесовщину , но обосновать не могу.(с)ПИСЬМО ОТЦА СЕРАФИМИЯ :-)


S@shka   (2003-04-23 15:33:00) [2]

почему?
на то он и клиент


$hade   (2003-04-23 15:23:00) [3]

без потока на клиенте можно сделать тоже самое с помощью таймера
OnTimer
if TCP.Connected then
TCP.ReadLn(Ln);

и все....почти...
Тока это все както....неправильно что-ли....некрасиво....:-)


S@shka   (2003-04-23 14:53:00) [4]

Все очень просто
просто давай клинты переодически читать после соединения

типа
TCP.Connect;

TCP.Readln();

если данные придут клиент их получит :)


$hade   (2003-04-23 06:59:00) [5]

у какого потока нет onexecute??
покажите мне тот TThread с котором нет метода Execute! :-)
Ты сам создаешь TThread в котором в методе Execute читаешь данные от сервера....


Мыш   (2003-04-22 14:46:00) [6]

>> и в Execute этого потока:
Так у этого потока нет обработчика onexecute !


$hade   (2003-04-22 10:24:00) [7]

Ааааааа! ))) Моя старая ошибка!! ))
вощщем так....
на сервере в OnExecute
Athread.connection.Read{ReadStream,ReadBuffer...короче что тебе надо прочитать от клиента...}

на клиенте создаешь поток (что-нить типа TClientReadThread)
и в Execute этого потока:
ReadBuffer(к примеру...)- получение данных
обработка полученных данных...
! WriteBuffer - отправка данных{результата например}
хотя отправлять данные ты можешь в любом месте....

>я не нашел методов у сервера, аналогичных client.write
на сервере есть OnConnected OnExecute OnDisconnect
у них у всех параметр AThread - поток ассоциированый с клиентом
т.е. AThread.Connection.{вот тут все твои методы write read etc.}

Это только начало всего гимора с которым ты столкнешся...:-)


Мыш   (2003-04-22 10:09:00) [8]

Да? А я не нашел методов у сервера, аналогичных client.write, а клиента нет события onexecute, в котором можно получить TIdPeerThread...


Spartak   (2003-04-22 07:15:00) [9]

>Мыш

>А то как-то кажется не очень красиво использовать по паре
> компонентов клиент-сервер

а ты не пользуйся по паре ! на 1 прогу кидаешь сервер а на 2 клиент и всё ! зачем по паре ( книжку почитай )


$hade   (2003-04-22 05:48:00) [10]

можно. точно так же как и с обычными TclientSocket и TserverSocket


Наверх

Титульная страница Поиск, карта сайта Написать письмо