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
There are 10 types of people - those who understand binary and those who don´t.