Entwickler-Ecke
Internet / Netzwerk - TSocket: Bestimmte Clienten ansenden...FAQ Core klappt nit
g1o2k4 - Mi 04.04.07 02:05
Titel: TSocket: Bestimmte Clienten ansenden...FAQ Core klappt nit
morgen...
es geht um tsocket komponenten, speziell TServerSocket...
habe folgendes gefunden, um dem Clienten zu antworten, der etwas gesendet hat:
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13:
| procedure TForm1.ServerSocket1ClientRead(Sender: TObject; Socket: TCustomWinSocket); var Msg: String; i: Integer; begin Msg := Socket.ReceiveText; for i := 0 to ServerSocket1.Socket.ActiveConnections-1 do if (Socket = ServerSocket1.Socket.Connections[i]) then begin ServerSocket1.Socket.Connections[i].SendText(Msg); ShowMessage('Nachricht von Client Nr.'+IntToStr(i)+':'+#13+Msg); end; end; |
bei der variablen überwachung, bleibt socket die ganze zeit "()", auch wenn ein client etwas sendet und dieser eigentlich zugeordnet werden müsste...wie ordne ich den clienten zu ?
Narses - Mi 04.04.07 02:41
Moin!
g1o2k4 hat folgendes geschrieben: |
habe folgendes gefunden, um dem Clienten zu antworten, der etwas gesendet hat:
Delphi-Quelltext 1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13:
| procedure TForm1.ServerSocket1ClientRead(Sender: TObject; Socket: TCustomWinSocket); var Msg: String; i: Integer; begin Msg := Socket.ReceiveText; for i := 0 to ServerSocket1.Socket.ActiveConnections-1 do if (Socket = ServerSocket1.Socket.Connections[i]) then begin ServerSocket1.Socket.Connections[i].SendText(Msg); ShowMessage('Nachricht von Client Nr.'+IntToStr(i)+':'+#13+Msg); end; end; | |
Dieser Code spiegelt das, was der Client gesendet hat (steht auch so in der FAQ); der Code funktioniert ganz sicher. ;)
g1o2k4 hat folgendes geschrieben: |
| bei der variablen überwachung, bleibt socket die ganze zeit "()", auch wenn ein client etwas sendet und dieser eigentlich zugeordnet werden müsste... |
Vergiss die Variablenüberwachung, bei Optimierung hat die so ihre Probleme... :?
g1o2k4 hat folgendes geschrieben: |
| wie ordne ich den clienten zu ? |
Delphi-Quelltext
1:
| procedure TForm1.ServerSocket1ClientRead(Sender: TObject; Socket: TCustomWinSocket); |
Das ist der Client, der gesendet hat. Die Schleife ist lediglich dazu da, den Index in das .Connections[]-Array des ServerSockets zu bestimmen; du kannst auch einfach gleich an den entsprechenden Socket senden. ;) (steht aber auch so in der FAQ...)
cu
Narses
g1o2k4 - Mi 04.04.07 10:18
also direkt Socket.Sendtext; oder Socket.Sendbuff(); ?
ohne die entsprechende .Connections[] ?
Edit: schon gut es funzt ! DANKE !!! :dance2: :rofl: :flehan: :zustimm:
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2026 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!