![]() |
SocketRead wird nicht ausgeführt
Ich habe heute versucht einen kleinen Chat basierend auf einem Tutorial zu erstellen.
Delphi-Quellcode:
Beim Durchlaufen der einzelnen Anweisungen ist mir aufgefallen, dass nach dem Drücken des "Send" knopfes, die prozedur ClientSocket1Read nicht ausgeführt wird.
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; Ich hab keine Ahnung, woran es liegen kann, da ich auch erst seit heute mit den Sockets arbeite. Woran könnte es liegen? |
AW: SocketRead wird nicht ausgeführt
Hast du ClientType auf ctBlocking? In diesem Falle werden weder OnRead noch OnWrite Events ausgelöst.
|
AW: SocketRead wird nicht ausgeführt
Und du hast einen Server, der dir auch was zurückschickt?
|
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 |
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 04:37 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