Socket->Connections[a] aber wie kommt man auf a ???
-
Hallo,
ein Socket Server bekommt eine Nachricht von einem Client geschickt.
Jetzt möchte ich genau diesem Client eine Antwort zurück schicken.
Bei allen Anleitungen die ich gefunden habe wir dann :ServerSocket1->Socket->Connections[0]->SendText(text);
geschrieben jedoch ist ja hier mit [0] immer die erste Verbindung gemeint.
Wie kann ich jetzt herausfinden von wem das gekommen ist und die Connectionszahl als variable eintragen ???Hier noch der komplette code auszug
void __fastcall TForm1::ServerSocket1ClientRead(TObject *Sender, TCustomWinSocket *Socket) { AnsiString text = Socket->ReceiveText(); Memo1->Lines->Add(text); ServerSocket1->Socket->Connections[0]->SendText(text); }DRIVER26
-
Brauchst du hier nicht. Der Socket-Parameter in OnClientRead steht für die Verbindung zu dem Client, von dem gerade gelesen wurde.
-
schön wäre es wenn es funktionieren würd

kommt aber immer nur bei dem client an der sich als erstes angemeldet hat

-
Bei diesem Code?
void __fastcall TForm1::ServerSocket1ClientRead(TObject *Sender, TCustomWinSocket *Socket) { Socket->SendText("bla"); }
-
ok so gehts prima
besten Dank !Aber eine generell frag
kann man die Connection nummer irgendwie auslesen ????
-
M.E. nicht direkt, aber du könntest z.B. durch das Connections-Array iterieren und jeweils mit dem Socket-Parameter vergleichen.
Ggf. solltest du anfangen, über eine Benutzerverwaltung und/oder ein eigenes Protokoll nachdenken, wo sich die Clients bei jeder Übertragung durch eine vorangestellte Nummer o.ä. identifizieren. Das wurde hier auch schon einige Male diskutiert, siehe FAQ und Suchfunktion.
-
hmm ok dann nochmal eine Verständnis Frage...
dann sind die Connections Array Einträge also die Sockets ?
-
Na komm, das steht doch unmissverständlich in der Hilfe zu Connections!
-
ok sorry hast recht wollte das nur noch mal von jemand wo sich auskennt bestätigt haben
als anfänger ist halt doch noch viele sehr sehr neu 