Вниз
Скачать: 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 вся ветка

Скачать: CL | DM;



Память: 0.47 MB
Время: 0.021 c
14-84763
Vulko
2003-05-24 11:44
2003.06.26
Что добавить в дистрибутив


1-84151
Levan Varshanidze
2003-06-11 11:45
2003.06.26
Откуда Delphi берет список для редактора?


1-84208
Rule
2003-06-12 17:59
2003.06.26
Вызов браузера, установленоого по умолчанию с нужной страницей


14-84525
Fly`
2003-06-06 16:58
2003.06.26
Нужен текстовый редактор


1-84238
Holy
2003-06-13 10:30
2003.06.26
По самой среде.




   Наверх