Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Netzwerke (https://www.delphipraxis.net/14-netzwerke/)
-   -   Delphi String vom Server an Client Schicken (TCP Socket) (https://www.delphipraxis.net/50230-string-vom-server-client-schicken-tcp-socket.html)

i2keilko 22. Jul 2005 10:36


String vom Server an Client Schicken (TCP Socket)
 
Hab mich jetz glaub ich durch das gesammte Internet gewühlt und nichts brauchbares gefunden!

Habe folgenden Seite gefunden die nützlich war! (Vielleicht kanns ja der eine oder andere mal brauen)
Link1


folgendes einfache Problemchen:

Ich habe einen TCP Server (ServerSocket1)

Der soll Daten von einem Programm(Bereits vorhanden) empfangen. Gelegentlich soll aber auch ein TextString an den Client übertragen werden.

Es gibt nur einen Client.

Empfangen ist ja kein problem dank dem OnClientRead Event.

Aber wie kann ich nun Daten an den Cleint schicken? Und das auch noch zu einem Zeitpunkt den ich bestimme (z.B in einem ONclickButton event)


Delphi-Quellcode:
{Es gibt die Funktion SendText, aber die gibt mir eben immer die Zugriffsverletzung zurück! Egal wie und wo ich die Funktion aufrufe  }
Socket.SendText('BlaBlaBla');

procedure TForm1.ServerSocket1Accept(Sender: TObject;
  Socket: TCustomWinSocket);
begin
    Memo1.Lines.Add('OnAccept');  
end;

procedure TForm1.ServerSocket1ClientRead(Sender: TObject;
  Socket: TCustomWinSocket);
begin
Memo1.Lines.Add(Socket.ReceiveText);
end;

procedure TForm1.ServerSocket1ClientConnect(Sender: TObject;
  Socket: TCustomWinSocket);
begin
  Memo1.Lines.Add('OnClientConnect');

end;

procedure TForm1.FormCreate(Sender: TObject);
begin
ServerSocket1.Open;
end;

procedure TForm1.ServerSocket1Listen(Sender: TObject;
  Socket: TCustomWinSocket);
begin
Memo1.Lines.Add('OnListen');
end;

procedure TForm1.ServerSocket1ClientDisconnect(Sender: TObject;
  Socket: TCustomWinSocket);
begin
Memo1.Lines.Add('Disconennect');
end;

procedure TForm1.ServerSocket1ClientError(Sender: TObject;
  Socket: TCustomWinSocket; ErrorEvent: TErrorEvent;
  var ErrorCode: Integer);
begin
Memo1.Lines.Add('On errror' + IntToStr(ErrorCode));
end;

procedure TForm1.ServerSocket1ClientWrite(Sender: TObject;
  Socket: TCustomWinSocket);
begin
Memo1.Lines.Add('OnClientWrite');
end;

procedure TForm1.ServerSocket1GetSocket(Sender: TObject; Socket: Integer;
  var ClientSocket: TServerClientWinSocket);
begin
Memo1.Lines.Add('Get Socket');
end;
Währe auch für ne NÜTZLICHE Antwort sehr Dankbar!

MFG qq

i2keilko 22. Jul 2005 11:01

Re: String vom Server an Client Schicken (TCP Socket)
 
Nach eienr kurzen Unterhaltung im Chatroom bekam ich eine Lösung!


ServerSocket1.Socket.Connection[0].SendText('Bla');

Wobei die 0 für den Client Steht.

Hätte man also mehrere Clients, müsste man da die Nummer des Clients angeben an den man senden will!

HERMES 22. Jul 2005 11:03

Re: String vom Server an Client Schicken (TCP Socket)
 
ein server kann nur dann daten schicken wenn er gefragt wurde! Nicht aber von sich selbst aus ohne anfrage eines clients.
Soll ein server nun doch daten an einen client ohne vorherige anfrage senden, so muss der client selbst serverfunktionen bereitstellen! Also einen port öffnen und an diesem lauschen!

mfg
Sim

alcaeus 22. Jul 2005 11:08

Re: String vom Server an Client Schicken (TCP Socket)
 
Zitat:

Zitat von HERMES
Soll ein server nun doch daten an einen client ohne vorherige anfrage senden, so muss der client selbst serverfunktionen bereitstellen! Also einen port öffnen und an diesem lauschen!

6, setzen. Wenn sich ein Client zu einem Server verbindet, so kann der Server solange Daten senden, bis der Client die Verbindung trennt. Natuerlich geht man hier von einer bestehenden Verbindung aus ;)

Greetz
alcaeus

ste_ett 22. Jul 2005 11:11

Re: String vom Server an Client Schicken (TCP Socket)
 
Zitat:

Es gibt die Funktion SendText, aber die gibt mir eben immer die Zugriffsverletzung zurück! Egal wie und wo ich die Funktion aufrufe
Und welche?

HERMES 22. Jul 2005 12:48

Re: String vom Server an Client Schicken (TCP Socket)
 
wenn eine verbindung besteht....
ich hatte es so verstanden, dass der server eine verbindung aufbauen soll


Alle Zeitangaben in WEZ +1. Es ist jetzt 04:26 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