Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2003.06.26;
Скачать: CL | DM;

Вниз

вопрос по indy client-server   Найти похожие ветки 

 
Мыш ©   (2003-04-22 02:03) [0]

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


 
$hade ©   (2003-04-22 05:48) [1]

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


 
Spartak ©   (2003-04-22 07:15) [2]

>Мыш

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

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


 
Мыш ©   (2003-04-22 10:09) [3]

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


 
$hade ©   (2003-04-22 10:24) [4]

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

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

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

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


 
Мыш ©   (2003-04-22 14:46) [5]

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


 
$hade ©   (2003-04-23 06:59) [6]

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


 
S@shka ©   (2003-04-23 14:53) [7]

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

типа
TCP.Connect;

TCP.Readln();

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


 
$hade ©   (2003-04-23 15:23) [8]

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

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


 
S@shka ©   (2003-04-23 15:33) [9]

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


 
$hade ©   (2003-04-23 15:50) [10]

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



Страницы: 1 вся ветка

Текущий архив: 2003.06.26;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.024 c
7-84804
Sirus
2003-04-04 06:56
2003.06.26
Ловушка на принтер...


8-84442
reticon
2003-03-08 13:52
2003.06.26
формат файла


1-84314
Shark
2003-06-15 17:59
2003.06.26
Событие onMouseMove


9-83845
K.o.Z
2003-01-11 23:41
2003.06.26
Вопрос по теме: Ландшафт


14-84561
RIMMER
2003-06-07 23:54
2003.06.26
Интерфейс и методы