AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Netzwerke Delphi TClientSocket führt keine Events aus

TClientSocket führt keine Events aus

Ein Thema von Dyami · begonnen am 10. Mai 2019 · letzter Beitrag vom 24. Jul 2019
Antwort Antwort
Benutzerbild von Dyami
Dyami

Registriert seit: 24. Sep 2013
Ort: Schleswig-Holstein
25 Beiträge
 
Delphi 10.3 Rio
 
#1

TClientSocket führt keine Events aus

  Alt 10. Mai 2019, 09:13
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:
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;
Danke LG
Philipp
  Mit Zitat antworten Zitat
Delbor

Registriert seit: 8. Okt 2006
Ort: St.Gallen/Schweiz
1.186 Beiträge
 
Delphi 11 Alexandria
 
#2

AW: TClientSocket führt keine Events aus

  Alt 10. Mai 2019, 10:57
Hi Dyami
Hallo zusammen,
Ich hätte erwartet, dass das MyOnWrite Event ausgelöst wird, sobald RufeGewichtAb durch ist.

Was mache ich falsch?

Delphi-Quellcode:
procedure InitSocket;
begin
...
  RufeInGewichtAb;
end;
Wie heisst die prozedur nun wirklich? Oder war der oben fett geschriebene Procedurname ein Flüchtigkeitsfehler (fehlendes 'in' im Namen)?

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
Roger
Man muss und kann nicht alles wissen - man muss nur wissen, wo es steht.
Frei nach Albert Einstein
http://roase.ch
  Mit Zitat antworten Zitat
TomyN

Registriert seit: 8. Nov 2006
Ort: Bayreuth
148 Beiträge
 
Delphi 10.3 Rio
 
#3

AW: TClientSocket führt keine Events aus

  Alt 13. Mai 2019, 17:15
Hmm,

was willst Du mit dem Timer?
Und Umlaute in Variablennamen würde ich vermeiden (Compiliert das 10.3? Muss ich mal probieren... )
Thomas Neumann
Meine Projekte
www.satlive.audio
www.levelcheck.de
  Mit Zitat antworten Zitat
Benutzerbild von Moombas
Moombas

Registriert seit: 22. Mär 2017
Ort: bei Flensburg
525 Beiträge
 
FreePascal / Lazarus
 
#4

AW: TClientSocket führt keine Events aus

  Alt 14. Mai 2019, 14:18
Zum einen fehlt die ein ' bei FEingangsSocket.Socket.SendText(WE WUMSCH V');// Text-Senden = 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?
Der Weg ist das Ziel aber man sollte auf dem Weg niemals das Ziel aus den Augen verlieren.
  Mit Zitat antworten Zitat
hoika

Registriert seit: 5. Jul 2006
Ort: Magdeburg
8.270 Beiträge
 
Delphi 10.4 Sydney
 
#5

AW: TClientSocket führt keine Events aus

  Alt 14. Mai 2019, 15:07
Hallo,
habe ich da einen Denkfehler.
Du schickst deinem eigenen Socket einen Text?
Ist das zum Testen?
Heiko
  Mit Zitat antworten Zitat
Benutzerbild von Dyami
Dyami

Registriert seit: 24. Sep 2013
Ort: Schleswig-Holstein
25 Beiträge
 
Delphi 10.3 Rio
 
#6

AW: TClientSocket führt keine Events aus

  Alt 24. Mai 2019, 06:50
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  FEingangsSocket.Active := True; dann zeigt mir mein Server auch an, dass ein Client sich verbunden hat.
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;
Philipp
  Mit Zitat antworten Zitat
Benutzerbild von Dyami
Dyami

Registriert seit: 24. Sep 2013
Ort: Schleswig-Holstein
25 Beiträge
 
Delphi 10.3 Rio
 
#7

AW: TClientSocket führt keine Events aus

  Alt 24. Jul 2019, 11:24
Hat sich erledigt.

Danke!
Philipp
  Mit Zitat antworten Zitat
Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 00:19 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