Autor Beitrag
g1o2k4
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 493



BeitragVerfasst: Mi 04.04.07 02:05 
morgen...

es geht um tsocket komponenten, speziell TServerSocket...
habe folgendes gefunden, um dem Clienten zu antworten, der etwas gesendet hat:
ausblenden 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
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Administrator
Beiträge: 10181
Erhaltene Danke: 1254

W10ent
TP3 .. D7pro .. D10.2CE
BeitragVerfasst: Mi 04.04.07 02:41 
Moin!

user profile icong1o2k4 hat folgendes geschrieben:
habe folgendes gefunden, um dem Clienten zu antworten, der etwas gesendet hat:
ausblenden 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. ;)

user profile icong1o2k4 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... :?

user profile icong1o2k4 hat folgendes geschrieben:
wie ordne ich den clienten zu ?

ausblenden 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.
g1o2k4 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 493



BeitragVerfasst: 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: