Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Netzwerke (https://www.delphipraxis.net/14-netzwerke/)
-   -   Delphi SocketRead wird nicht ausgeführt (https://www.delphipraxis.net/178123-socketread-wird-nicht-ausgefuehrt.html)

Octom 18. Dez 2013 18:03

SocketRead wird nicht ausgeführt
 
Ich habe heute versucht einen kleinen Chat basierend auf einem Tutorial zu erstellen.
Delphi-Quellcode:
type
  TForm1 = class(TForm)
    Button1: TButton;
    Memo1: TMemo;
    Edit1: TEdit;
    ClientSocket1: TClientSocket;
    ServerSocket1: TServerSocket;
    procedure FormActivate(Sender: TObject);
    procedure Button1Click(Sender: TObject);
    procedure ClientSocket1Read(Sender: TObject; Socket: TCustomWinSocket);
    procedure ClientSocket1Connect(Sender: TObject;
      Socket: TCustomWinSocket);
  private
    { Private-Deklarationen }
  public
    { Public-Deklarationen }
  end;

var
  Form1: TForm1;
  massage: string;

implementation

{$R *.DFM}

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

procedure TForm1.Button1Click(Sender: TObject);
begin
  ClientSocket1.Socket.SendText(Edit1.Text);
  Edit1.Text:='';
end;

procedure TForm1.ClientSocket1Read(Sender: TObject;
  Socket: TCustomWinSocket);
begin

  Memo1.Lines.Add(Socket.ReceiveText);
end;
Beim Durchlaufen der einzelnen Anweisungen ist mir aufgefallen, dass nach dem Drücken des "Send" knopfes, die prozedur ClientSocket1Read nicht ausgeführt wird.
Ich hab keine Ahnung, woran es liegen kann, da ich auch erst seit heute mit den Sockets arbeite.
Woran könnte es liegen?

Zacherl 18. Dez 2013 18:09

AW: SocketRead wird nicht ausgeführt
 
Hast du ClientType auf ctBlocking? In diesem Falle werden weder OnRead noch OnWrite Events ausgelöst.

sirius 18. Dez 2013 18:21

AW: SocketRead wird nicht ausgeführt
 
Und du hast einen Server, der dir auch was zurückschickt?

Octom 18. Dez 2013 18:22

AW: SocketRead wird nicht ausgeführt
 
ich hab beides auf ctNonBlocking. Auch die Ports stimmen überein.
Server hab ich auch. Ist eigentlich nichts signifikant anderes, als in dem tutorial zu dem thema

Aphton 18. Dez 2013 20:40

AW: SocketRead wird nicht ausgeführt
 
Bei deinem Beispiel scheinst du innerhalb der Anwendung eine Nachricht per Client zu schicken und mit der Server-Komponente in derselben Anwendung zu empfangen.

Client (deine App) schickt Daten an Server (wieder deine App).
Der Server will sein OnClientRead ausführen, kann aber nicht, weils nicht zugewiesen ist.
Du hast nur für dein Client ein OnRead gesetzt; du müsstest aber bei der Server Komponente im OnRead Event den Code, den du da hast, einfügen!


Alle Zeitangaben in WEZ +1. Es ist jetzt 15:42 Uhr.

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