![]() |
TClientSocket führt keine Events aus
Hallo zusammen,
ich habe das Problem, dass wenn ich meinen Text versenden möchte dass er nicht in das Event MyOnWrite rein kommt. Der Server steht und sagt auch, dass meine Anwendung verbunden ist. Ich hätte erwartet, dass das MyOnWrite Event ausgelöst wird, sobald RufeGewichtAb durch ist. Was mache ich falsch?
Delphi-Quellcode:
Danke LG
procedure InitSocket;
begin FEingangsSocket := TClientSocket.Create(nil); FEingangsSocket.Host := '127.0.0.1'; FEingangsSocket.Port := '8080'; FEingangsSocket.Socket.ASyncStyles := [asRead, asWrite, asOOB, asAccept, asConnect, asClose]; FEingangsSocket.OnRead := MyOnRead; FEingangsSocket.OnWrite := MyOnWrite; FEingangsSocket.ClientType := ctBlocking; setsockopt(FEingangsSocket.Socket.SocketHandle, IPPROTO_TCP, TCP_NODELAY, PAnsiChar(1), 4); FEingangsSocket.Active := True; Application.ProcessMessages; RufeInGewichtAb; end; procedure MyOnRead(Sender: TObject; Socket: TCustomWinSocket); begin FPrüfText := string(FEingangsSocket.Socket.ReceiveText); //Text auslesen end; procedure MyOnWrite(Sender: TObject; Socket: TCustomWinSocket); begin FTimer.Enabled := True; //Aktiviere einen Timer end; function RufeInGewichtAb(): boolean; begin FEingangsSocket.Socket.SendText(WE WUMSCH V');// Text-Senden end; |
AW: TClientSocket führt keine Events aus
Hi Dyami
Zitat:
Ansonsten kannst du mal 2 Haltepunkte setzen: einen vor, den andern auf die Prozedurzuweisung. Wird die Zeile mit dem zweiten Haltepunkt abgearbeitet? Oder die des Aufrufs? (RufeInGewichtAb)? Gruss Delbor |
AW: TClientSocket führt keine Events aus
Hmm,
was willst Du mit dem Timer? Und Umlaute in Variablennamen würde ich vermeiden (Compiliert das 10.3? Muss ich mal probieren... ) |
AW: TClientSocket führt keine Events aus
Zum einen fehlt die ein ' bei
Delphi-Quellcode:
=
FEingangsSocket.Socket.SendText(WE WUMSCH V');// Text-Senden
Delphi-Quellcode:
?
FEingangsSocket.Socket.SendText('WE WUMSCH V');// Text-Senden
Zum anderen warum ist "RufeInGewichtAb" bei dir eine function, wenn du weder den Boolwert ausliest noch einen zurückgibst? |
AW: TClientSocket führt keine Events aus
Hallo,
habe ich da einen Denkfehler. Du schickst deinem eigenen Socket einen Text? Ist das zum Testen? |
AW: TClientSocket führt keine Events aus
Hallo,
mir geht es theoretisch rein um das Senden einer Anfrage an einen Server. Ich habe auf der anderen Seite einen Server (TServerSocket). Wenn ich nun mein Client mit dem Server verbinde also
Delphi-Quellcode:
dann zeigt mir mein Server auch an, dass ein Client sich verbunden hat.
FEingangsSocket.Active := True;
Nun will ich eine Nachricht an den Server senden, aber diese Nachricht kommt vom Client nie am Server an, deswegen frage ich, was ich falsch mache. Mein Ziel ist es, dass ich später mit einer STX + Daten + ETX Anfrage, Daten vom Server als Antwort bekomme. Das mit dem STX und ETX habe ich aktuell noch nicht eingebaut, weil ich es erstmal einfach haben wollte.
Delphi-Quellcode:
procedure InitSocketAndSendRequest;
begin FEingangsSocket := TClientSocket.Create(nil); FEingangsSocket.Host := '127.0.0.1'; FEingangsSocket.Port := '8080'; FEingangsSocket.Socket.ASyncStyles := [asRead, asWrite, asOOB, asAccept, asConnect, asClose]; FEingangsSocket.OnRead := MyOnRead; FEingangsSocket.OnWrite := MyOnWrite; FEingangsSocket.ClientType := ctBlocking; setsockopt(FEingangsSocket.Socket.SocketHandle, IPPROTO_TCP, TCP_NODELAY, PAnsiChar(1), 4); FEingangsSocket.Active := True; Application.ProcessMessages; FEingangsSocket.Socket.SendText('WE WUMSCH V');// Text-Senden end; procedure MyOnRead(Sender: TObject; Socket: TCustomWinSocket); begin FPrüfText := string(FEingangsSocket.Socket.ReceiveText); //Text auslesen end; procedure MyOnWrite(Sender: TObject; Socket: TCustomWinSocket); begin ShowMessage('TEST'); end; |
AW: TClientSocket führt keine Events aus
Hat sich erledigt.
Danke! |
Alle Zeitangaben in WEZ +1. Es ist jetzt 05:50 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