void __fastcall TForm1::Button1Click(TObject *Sender)
{
int n = 5;
C1->SendBuffer(&n, sizeof(int));
C1->ReceiveBuffer(&n, sizeof(int));
Label1->Caption = n;
}
void __fastcall TForm1::S1UDPRead(TObject *Sender, TStream *AData,
TIdSocketHandle *ABinding)
{
int n;
AData->ReadBuffer(&n, sizeof(int));
n++;
ABinding->SendTo(ABinding->IP, ABinding->Port, &n, sizeof(n)); // ne radi...
//AData->WriteBuffer(&n, sizeof(int)); // niti ovo...
//AData->Write(&n, sizeof(int)); // niti ovo..
}
Pokušavam iz UDP klijenta serveru poslati br 5, a da mi server vrati taj isti broj uvećan za 1. Međutim, iz servera se niti na jedan od ova tri načina poruka neće poslati nazad klijentu. Kao da nisam ništa niti napisao. U čemu griješim? Naravno, portovi su identični na klijent i server strani i host je ispravno definiran.
Također, imam desetak UDP servera u labosu i trebao bih pritiskom na gumb znati koji od njih je upaljen a koji ne. Zapravo, to sam mislio napraviti broadcastom, ali ta funkcija kao prvi parametar ima AnsiString, a ja bi trebao serverima poslati ID zahtjeva. Npr. preko broadcasta bi htio svima u mreži poslati br. 50, a svi koji su to primili da mi taj isti broj vrate nazad. Ideje? Inače, ping ne mogu koristiti zbog nekih drugih stvari..