Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi Von Server zu Client einen Text senden (https://www.delphipraxis.net/72440-von-server-zu-client-einen-text-senden.html)

xthing 30. Jun 2006 09:48


Von Server zu Client einen Text senden
 
Liste der Anhänge anzeigen (Anzahl: 1)
Hi Leute,

ich habe ein Problem, wenn ich einen Text vom TCP Server zum TCP Client senden möchte. Von Client zum Server geht ohne Probleme. Immer wenn ich einen Text vom Server zum Client senden möchte, kommt die Fehlermeldung, die als Attachment angefügt habe. Hier der Source Code:

Delphi-Quellcode:
implementation

{$R *.dfm}

procedure TForm1.FormCreate(Sender: TObject);
begin
//Initialisierung des Objekts (ältere Delphi-Versionen)
Server := TServerSocket.Create(Form1);
Client := TClientSocket.Create(Form1);
Server.OnClientRead := ServerClientRead; //Nur bei älteren Versionen
//Server.OnClientWrite := ServerClientWrite; // Nur bei älteren Versionen
Client.OnRead := ServerRead; // Nur bei älteren Versionen
try
Server.Port := 10024;
Server.Open;
Client.Port := 10024;
Client.Host := '127.0.0.1';
//Client.Open;
Client.Active := True;
except
//Im Fehlerfall wieder freigeben (ältere Versionen)
Client.Free;
Server.Free;
end;
end;

procedure TForm1.FormDestroy(Sender: TObject);
begin
Client.Free;
Server.Free;
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
Client.Socket.SendText('Hallo!');
Server.Socket.SendText('selber Hallo!');
end;

procedure TForm1.ServerClientRead(Sender: TObject; Socket: TCustomWinSocket);
var
MSG: String;
begin
//Der Text wird in der Variable MSG gespeichert
MSG := Socket.ReceiveText;
//Der Text wird einem MemoFeld hinzugefügt
Memo1.Lines.Add(MSG);
end;

procedure TForm1.ServerRead(Sender: TObject; Socket: TCustomWinSocket);
var
MSG: String;
begin
//Der Text wird in der Variable MSG gespeichert
MSG := Socket.ReceiveText;
//Der Text wird einem MemoFeld hinzugefügt
Memo1.Lines.Add(MSG);
end;

end.

Was hab ich falsch gemacht?
Könnt Ihr mir helfen?

Danke im voraus.
Gruß
xthing

Muetze1 30. Jun 2006 09:55

Re: Von Server zu Client einen Text senden
 
Ein Server kann im Gegensatz zum Client immer mehrere Verbindungen haben und somit musst du schon angeben an welche Verbindung du zurück senden möchtest.

Delphi-Quellcode:
If ( ServerSocket.Socket.Connection.Count > 0 ) Then
  ServerSocket.Socket.Connection[0].SendText('Hier gehts lang');

xthing 30. Jun 2006 10:22

Re: Von Server zu Client einen Text senden
 
@Muetze1

super, danke klappt.

Grüsse
xthing


Alle Zeitangaben in WEZ +1. Es ist jetzt 08:07 Uhr.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz