![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Пара вопросов по Indy... [D7, WinXP]
$hade © (2002-11-21 11:43:00)Я уже когда-то задавал подобные вопросы...но...пока так и не разобрался....:((
1. В TIdTCPServer есть событие OnExecute - типа когда клиент запустил новый поток...
В этом событии можно читать данные от клиента когда тот их ПОСЫЛАЕТ.
На клиенте такого события нет - приходится читать в таймере...
Вот два примера кода:
1. Клиент
OnButton1Click
Client.SendBuffer(buf,sizeof(Buf));
OnButton2Click
Client.ReciveBuffer(buf,sizeof(Buf));
Сервер
OnExecute(AThread:TIDThread);
AThread.Connection.ReciveBuffer(Buf,sizeof(buf));
...
AThread.Connection.SendBuffer(Buf,sizeof(buf));
!! Это не конкретный код - просто пример...
так все работает...
2. 1. Клиент
OnButton1Click
Client.SendBuffer(buf,sizeof(Buf));
!! OnTimer !!
Client.ReciveBuffer(buf,sizeof(Buf));
Сервер
OnExecute(AThread:TIDThread);
AThread.Connection.ReciveBuffer(Buf,sizeof(buf));
...
AThread.Connection.SendBuffer(Buf,sizeof(buf));
А тут ж...sorry...вощщем на сервере событие OnExecute происходит уже и когда клиент читает,и когда пишет...
А КАК МНЕ ПОНЯТЬ НА СЕРВЕРЕ - ЧТО МНЕ С КЛИЕНТОМ ДЕЛАТЬ??
И еще маленький вопрос - кто разбирался c Indy в D7 (или с последними версиями вообще) - что за звери такие - I/O Handlers?
(типа - нет,все понятно - но что конкретно? :-))
P.S:В числе других особенно хотелось бы услышать мнение Digitman"а :-)
Reindeer Moss Eater (2002-11-21 12:44:00) [21]На клиенте такого события нет - приходится читать в таймере...
А зачем клиенту что-то читать в OnTimer?