AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Netzwerke Client sendet zu einem SERVER - Er empfängt nur die erste 11 Bytes wieso?
Thema durchsuchen
Ansicht
Themen-Optionen

Client sendet zu einem SERVER - Er empfängt nur die erste 11 Bytes wieso?

Ein Thema von wschrabi · begonnen am 7. Mär 2025 · letzter Beitrag vom 10. Mär 2025
Antwort Antwort
Benutzerbild von jaenicke
jaenicke

Registriert seit: 10. Jun 2003
Ort: Berlin
10.054 Beiträge
 
Delphi 12 Athens
 
#1

AW: Client sendet zu einem SERVER - Er empfängt nur die erste 11 Bytes wieso?

  Alt 7. Mär 2025, 12:06
Erstmal:
Du setzt FreeOnTerminate auf True. Dann darfst du dir diesen Thread nicht in eine Variable speichern und darauf zugreifen. Nie!
Wenn du auf den Thread zugreifen möchtest, muss FreeOnTerminate False sein.

Was passiert? Du rufst Terminate auf, woraufhin der Thread sich beendet und freigibt, dann rufst du WaitFor auf, aber der Thread existiert da schon nicht mehr. --> Rumms

Warum hängt der Client? Im Debugger solltest du ja gesehen haben, dass der Client in Post hängen bleibt. Woran das liegt? Dein Server schickt keine Antwort. Also wartet der Client darauf. Du kannst z.B. im OnExecute einfach am Ende HTTP 200 schicken, sprich alles ok:
Delphi-Quellcode:
    AContext.Connection.IOHandler.WriteLn('HTTP/1.1 200 OK');
    AContext.Connection.IOHandler.WriteLn('Content-Length: 2');
    AContext.Connection.IOHandler.WriteLn('');
    AContext.Connection.IOHandler.WriteLn('OK');
Wenn du mit HTTP arbeiten möchtest, wäre allerdings TIdHTTPServer statt TIdTCPServer sinnvoller, damit du das HTTP Protokoll nicht selbst schreiben musst...
Dann geht das ganz einfach so:
Delphi-Quellcode:
// im OnCommandGet:
  AResponseInfo.ContentText := 'OK';
  AResponseInfo.ResponseNo := 200;
Außerdem kannst du dir dann die Suche nach den beiden Leerzeilen usw. komplett schenken, weil du einfach die Anfrage direkt komplett bekommst.
Sebastian Jänicke
AppCentral
  Mit Zitat antworten Zitat
wschrabi

Registriert seit: 16. Jan 2005
456 Beiträge
 
#2

AW: Client sendet zu einem SERVER - Er empfängt nur die erste 11 Bytes wieso?

  Alt 7. Mär 2025, 12:47
SUPER Perfekte Anwort, ich lerne dazu, recht herzlichen DANK.
  Mit Zitat antworten Zitat
wschrabi

Registriert seit: 16. Jan 2005
456 Beiträge
 
#3

AW: Client sendet zu einem SERVER - Er empfängt nur die erste 11 Bytes wieso?

  Alt 10. Mär 2025, 08:23
Hat nun alles geklappt !
  Mit Zitat antworten Zitat
Antwort Antwort

 

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 07:18 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