Форум: "Сети";
Текущий архив: 2003.06.26;
Скачать: [xml.tar.bz2];
Внизвопрос по 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;
Скачать: [xml.tar.bz2];
Память: 0.46 MB
Время: 0.03 c