Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > C/C++: Сети > Телнет сервер от INDY


Автор: Kleovo 19.9.2006, 15:32
Используя компоненту INDY написал телнетовский сервер 
Мне необходимо чтобы сервер периодически выдавал сообщения формируемые сервером(без запроса клиента ), и обрабатывал запрос клиента. 
Как такое сделать ?

В обработчике Timer1Timer я получаю даные pStR которые затем сервер выдает клиенту в IdTelnetServer1Execute(смотри ниже) 
Затем ( Form1->Edit1 -> Text = AThread->Connection ->InputLn() 
опрос клиента. 
На этой обработке Сервер постояно ожидает запроса от клиента. 
А нужно, чтобы выполнялся вывод на клиента без ожидания и запрос клиента. 


Код


void __fastcall TForm1::IdTelnetServer1Execute(TIdPeerThread *AThread) 


while(   IdTelnetServer1 -> Active ) 
  { 
        if((CheckBox1->Checked) == true && (pStR !=NULL)) 
           {AThread->Connection->Write(pStR); 
             AThread->Connection->Write(Form1->LabelDT ->Caption +"=>");} 

       Form1->Edit1 -> Text = AThread->Connection ->InputLn(); 
  } 
}


Автор: Romikgy 19.9.2006, 15:48
Цитата(Kleovo @  19.9.2006,  14:32 Найти цитируемый пост)
чтобы выполнялся вывод на клиента без ожидания и запрос клиента. 

дык активируй таймер да пиши на клиента типа Thread->Connection->Write(pStR); в чем проблема то ?

Автор: Kleovo 19.9.2006, 17:09
При вставке AThread->Connection -> WriteLn(pStR)); в функцию таймера
 выдает сообщение: Undefined symbol 'AThread'
Как возможно описать AThread , чтобы ее было видно из Timer1Timer?

Автор: Romikgy 20.9.2006, 08:48
тогда ищи тоже в 
Цитата(Kleovo @  19.9.2006,  14:32 Найти цитируемый пост)
IdTelnetServer1


Автор: Kleovo 20.9.2006, 09:51
Не понял, что искать?
А возможно каким то образом узнать со стороны сервера вводилась информация  клиентом без считывания ее?
Или как описать переменную  AThread глобально?

Автор: Romik_Yarosh 20.9.2006, 09:55
Код

IdTelnetServer1->Threads[чето там ]->Connection -> WriteLn(pStR);

Threads это TThreadList

Автор: Kleovo 20.9.2006, 14:01
 smile 
Не получается обьявить поток  AThread в  Timer1Timer?

Автор: Romikgy 20.9.2006, 17:50
Цитата(Kleovo @  20.9.2006,  13:01 Найти цитируемый пост)
Не получается обьявить поток  AThread в  Timer1Timer? 

нда smile
Цитата(Romik_Yarosh @  20.9.2006,  08:55 Найти цитируемый пост)
IdTelnetServer1->Threads[чето там ]->Connection -> WriteLn(pStR);

 smile 

Автор: Kleovo 22.9.2006, 10:00
Пробую использовать 

Код

    Status = AThread->Connection->CurrentReadBufferSize()

как то не понятно выдает значение Status 0 или -1 при этом ввода со стороны клиента нет.
 Может проблема в версии INDY 8.0.25?

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)