AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Netzwerke Nachricht an Server schicken mit LEN = 0?

Nachricht an Server schicken mit LEN = 0?

Ein Thema von schwa226 · begonnen am 7. Jun 2010 · letzter Beitrag vom 9. Jun 2010
Antwort Antwort
schwa226

Registriert seit: 4. Apr 2008
400 Beiträge
 
#1

Nachricht an Server schicken mit LEN = 0?

  Alt 7. Jun 2010, 20:07
Hi,

ich stehe gerade vor einem Problem.

Ich muss bei einem Server ein Command bestätigen. Der Original Client schickt was an den Server IPort - jedoch mit Datalänge 0!?

Kann ich das mit dem Indy TCP Client das auch machen?
Wüsste jetzt nicht wie, da bei WriteDirect die Länge der Daten überprüft werden und bei 0 ja dann nichts gesendet wird.

Oder ist das sowas wie ein Ping?
Oder geht das eigentlich gar nicht?

Bin etwas ratlos...
Delphi 2010, Update 4 & 5
  Mit Zitat antworten Zitat
Benutzerbild von wicht
wicht

Registriert seit: 15. Jan 2006
Ort: Das schöne Enger nahe Bielefeld
809 Beiträge
 
Delphi XE Professional
 
#2

AW: Nachricht an Server schicken mit LEN = 0?

  Alt 7. Jun 2010, 20:44
Ich würde sagen, dass das nicht geht. Woher weißt du denn, dass die Datenlänge 0 ist?
Falls du Client und Server da hast, eventuell mit Wireshark mal den Traffic aufzeichnen und angucken? Könnte ja z.B. sein, dass es ein paar NULL Bytes sind, und der Indy Client die unterdrückt, weil er auf Text-Modus oder sonst was steht, falls du mit diesem 'geforscht' hast? Ist nur ins blaue geraten..
http://streamwriter.org

"I make hits. Not the public. I tell the DJ’s what to play. Understand?"
  Mit Zitat antworten Zitat
schwa226

Registriert seit: 4. Apr 2008
400 Beiträge
 
#3

AW: Nachricht an Server schicken mit LEN = 0?

  Alt 7. Jun 2010, 21:37
Mal sehen! Danke für den Tipp von Wireshark.

Werd mir einmal den Traffic ansehen.
Delphi 2010, Update 4 & 5
  Mit Zitat antworten Zitat
Benutzerbild von s.h.a.r.k
s.h.a.r.k

Registriert seit: 26. Mai 2004
3.159 Beiträge
 
#4

AW: Nachricht an Server schicken mit LEN = 0?

  Alt 7. Jun 2010, 22:32
Könnte mir auch nur vorstellen, dass ein #0 gesendet wird.
»Remember, the future maintainer is the person you should be writing code for, not the compiler.« (Nick Hodges)
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#5

AW: Nachricht an Server schicken mit LEN = 0?

  Alt 7. Jun 2010, 22:45
Aber das hätte die Länge eins. Eine Nachricht mit der Länge null gibt es nicht, denn das würde bedeuten dass die Informationslänge null wäre, also keine Information gesendet wird. Übrigens ein schönes Thema aus der Theoretischen Informatik: Nachrichten und Informationen.
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
Benutzerbild von SirThornberry
SirThornberry
(Moderator)

Registriert seit: 23. Sep 2003
Ort: Bockwen
12.235 Beiträge
 
Delphi 2006 Professional
 
#6

AW: Nachricht an Server schicken mit LEN = 0?

  Alt 8. Jun 2010, 08:22
Ich vermute das einfach ein Paket entsprechend dem Protokoll gesendet wird mit Informationslenge 0
Also einfach ein Paket ohne jegliche Zusatzinformationen.
Jens
Mit Source ist es wie mit Kunst - Hauptsache der Künstler versteht's
  Mit Zitat antworten Zitat
schwa226

Registriert seit: 4. Apr 2008
400 Beiträge
 
#7

AW: Nachricht an Server schicken mit LEN = 0?

  Alt 9. Jun 2010, 07:13
Das Protokoll hat normal 4 Bytes Header (Kommando & Daten länge). Je nach angegebener Datenlänge im Header dann halt auch noch Daten.
Somit ist die Mindestlänge 4 Bytes. Also Header ohne Daten.

Wenn ich mir eine Header-Only Nachricht ansehe, sehe ich auch die empfangene Länge 4.

Und genau da empfängt der Server hin und wieder aber auch eine Nachricht mit der Länge 0.
Aber der Server reagiert darauf und nimmt es sozusagen als Bestätigung an.

Kann das sowas wie eine Überprüfung vom Client sein ob die IP/Port noch verfügbar ist?
Vielleicht im UDP Protokoll?
Delphi 2010, Update 4 & 5
  Mit Zitat antworten Zitat
Benutzerbild von SirThornberry
SirThornberry
(Moderator)

Registriert seit: 23. Sep 2003
Ort: Bockwen
12.235 Beiträge
 
Delphi 2006 Professional
 
#8

AW: Nachricht an Server schicken mit LEN = 0?

  Alt 9. Jun 2010, 08:07
Länge 0 auf das gesamte gibt es nichts. Wenn 0 Byte gesendet werden, also nichts gesendet wird kann auch nichts empfangen werden. Wenn dann wird eben dein Header gesendet mit Datenlänge 0 was angibt das keine Daten folgen.
Aber es ist definitiv so das nicht empfangen wird wenn nichts gesendet wird. Wenn trotzdem was ankommt wird auch was gesendet, und wenn es nur das Grundpaket ohne Daten ist.
Jens
Mit Source ist es wie mit Kunst - Hauptsache der Künstler versteht's
  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 01:47 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