Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Сети";
Текущий архив: 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.032 c
3-84040
mao
2003-06-01 12:28
2003.06.26
БД, языки и кодировки


1-84141
NailMan
2003-06-10 16:32
2003.06.26
Отключение скринсейвера


14-84759
Vopros
2003-06-06 11:20
2003.06.26
Как отослать письма?


14-84666
LiLa Ananda
2003-06-08 12:47
2003.06.26
---|Ветка была без названия|---


3-83900
tan
2003-06-03 10:21
2003.06.26
Как избавиться от ошибки General SQL Error -2146824655





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский