Уважаемые Форумчане, смог немного разобраться:
Отправить сообщение клиенту, определенному клиенту вот так:
TList* cList;
cList = IdTCPServer1->Contexts->LockList();
ListBox1->Items->Add(cList->Count);
try
{
((TIdContext *)cList->Items[0])->Connection->IOHandler->WriteLn(Edit2->Text, enUTF8);
}
__finally
{
IdTCPServer1->Contexts->UnlockList();
}
А принять можно только через таймер.
void __fastcall TForm1::Timer1Timer(TObject *Sender)
{
if (IdTCPClient1->Socket->Connected()==true) //проверка на соединение
{
if (IdTCPClient1->Socket->InputBufferIsEmpty()==false) //проверка на наличии в буфере данных
{
Vxod = IdTCPClient1->Socket->ReadLn(enUTF8); //считаем буфер
Label1->Text = Vxod; //свои действия
}
}
}
Может кому нибудь понадобиться.
Однако, теперь я наткнулся на вот такую проблему, которую вообще никак не могу решить:
void __fastcall TForm1::IdTCPServer1Execute(TIdContext *AContext)
{
AnsiString tempZap;
tempZap = AContext->Connection->IOHandler->ReadLn(enUTF8);
AnsiString tempd;
tempd = tempZap.SubString(tempZap.Pos("") + 3, tempZap.Pos("") - 4);
Label4->Text = tempd;
if (tempd == "qzap")
{
Label5->Text = "OK";
}
else
{
Label5->Text = "NO";
}
}
При создании любого цикла, информация то приходит то не приходит, то есть в Label5, текст появляться не всегда.
Подскажите, что это такое вообще?