AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Netzwerke Delphi UDP Send, Stream wird verändert?
Thema durchsuchen
Ansicht
Themen-Optionen

UDP Send, Stream wird verändert?

Ein Thema von xSkaschY · begonnen am 30. Okt 2009 · letzter Beitrag vom 31. Okt 2009
Antwort Antwort
xSkaschY

Registriert seit: 19. Jun 2006
Ort: Bünde
95 Beiträge
 
Delphi 2007 Professional
 
#1

UDP Send, Stream wird verändert?

  Alt 30. Okt 2009, 14:36
Hallo zusammen,

versuche gerade einen UDP Server mit ein paar Daten zu füttern. Da ich keine Antwort vom Server bekomme, habe ich mal die Pakete mit Wireshark überwacht und siehe da, aus meinem Chr($FF) wird ein Chr($79).

Woran kann das liegen?

Delphi-Quellcode:
// Ein bissle Code
sCMD := Chr($FE) + Chr($FD) + Chr($00) + Chr($04) + Chr($05)+ Chr($06)+ Chr($07)+ Chr($FF)+ Chr($FF)+ Chr($FF);

{
  oUDPClient: TIdUDPClient
  Indy 10.5.5
}


oUDPClient.ReceiveTimeout := 500;

oUDPCLient.Send(sCMD);
sBuffer := oUDPClient.ReceiveString;
WireShark meldet außerdem folgendes:

"Header checksum: 0x0000 [incorrect, should be 0x4f7b]"

So schaut des Paket beim Transfer aus:

Code:
char peer0_0[] = {0x3f, 0x79, 0x00, 0x04, 0x05, 0x06, 0x07, 0x79, 0x79, 0x79 };

LG
  Mit Zitat antworten Zitat
Benutzerbild von Bernhard Geyer
Bernhard Geyer

Registriert seit: 13. Aug 2002
17.201 Beiträge
 
Delphi 10.4 Sydney
 
#2

Re: UDP Send, Stream wird verändert?

  Alt 30. Okt 2009, 14:43
Zitat von xSkaschY:
versuche gerade einen UDP Server mit ein paar Daten zu füttern. Da ich keine Antwort vom Server bekomme, habe ich mal die Pakete mit Wireshark überwacht und siehe da, aus meinem Chr($FF) wird ein Chr($79).
Unterstützt der Server überhaupt zeichen > $7F (7-Bit Ascii)?
Windows Vista - Eine neue Erfahrung in Fehlern.
  Mit Zitat antworten Zitat
xSkaschY

Registriert seit: 19. Jun 2006
Ort: Bünde
95 Beiträge
 
Delphi 2007 Professional
 
#3

Re: UDP Send, Stream wird verändert?

  Alt 30. Okt 2009, 17:09
Er soll ja eben kein 7-Bit ASCII bekommen, sondern ein 0xFF. Aber irgendwo wird daraus was anderes.

Der Server will vorzeichenbehaftende Zeichen.

Wenn ich via PHP den Request an den Server schicke, gibt er mir auch fleißig die angeforderten Info's raus.

Also ist es damit ausgeschlossen.

LG
  Mit Zitat antworten Zitat
Klaus01

Registriert seit: 30. Nov 2005
Ort: München
5.771 Beiträge
 
Delphi 10.4 Sydney
 
#4

Re: UDP Send, Stream wird verändert?

  Alt 30. Okt 2009, 18:34
Guten Abend,

TidUdpClient.send() erwartet einen String.
Es könnte sein, dass das Zeichen $00 dann stört.

Hast Du schon TidUDpClient.sendBuffer(data: TidBytes) probiert?

Grüße
Klaus
Klaus
  Mit Zitat antworten Zitat
xSkaschY

Registriert seit: 19. Jun 2006
Ort: Bünde
95 Beiträge
 
Delphi 2007 Professional
 
#5

Re: UDP Send, Stream wird verändert?

  Alt 31. Okt 2009, 08:13
Jawohl! So Funktioniert es!

Delphi-Quellcode:
SetLength(aPacket, 10);
aPacket[0] := $FE;
aPacket[1] := $FD;
aPacket[2] := $00;
aPacket[3] := $04;
aPacket[4] := $05;
aPacket[5] := $06;
aPacket[6] := $07;
aPacket[7] := $FF;
aPacket[8] := $FF;
aPacket[9] := $FF;

oUDPClient.SendBuffer(sHost, wPort, aPacket);
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.184 Beiträge
 
Delphi 12 Athens
 
#6

Re: UDP Send, Stream wird verändert?

  Alt 31. Okt 2009, 08:51
Delphi-Quellcode:
var sCMD: AnsiString;

sCMD := #$FE#$FD#$00#$04#$05#$06#$07#$FF#$FF#$FF;
IdUDPClient1.SendBuffer(TBytes(sCMD));
AnsiString (bis Delphi 2007 auch noch als String bekannt) ist sozusagen eine Erweiterung eines dynamischen Byte-Arrays (bzw. eines AnsiChar-Arrays).

Und .Send erwartet, wie schon gesagt wurde, einen String, welcher dann auch noch entsprechend der gesetzen Codierung übersetzt wird.
#$FF = ÿ
dieses gibt es wohl in der ein eingestellten Codierung nicht
und deshalb wurde da ein y (#$79) daraus.
$2B or not $2B
  Mit Zitat antworten Zitat
xSkaschY

Registriert seit: 19. Jun 2006
Ort: Bünde
95 Beiträge
 
Delphi 2007 Professional
 
#7

Re: UDP Send, Stream wird verändert?

  Alt 31. Okt 2009, 09:33
So scheint es, was mir nur stark wundert, in einem anderen Programm hab ich des genau so gemacht und da funktionierte es.

Delphi 2010 hab ich zur Zeit
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.184 Beiträge
 
Delphi 12 Athens
 
#8

Re: UDP Send, Stream wird verändert?

  Alt 31. Okt 2009, 09:47
D2010 ist Unicode, daß heißt Send+String ist auch Unicode, aber der Request wird bestimmt nicht als Unicode rausgehn.
$2B or not $2B
  Mit Zitat antworten Zitat
xSkaschY

Registriert seit: 19. Jun 2006
Ort: Bünde
95 Beiträge
 
Delphi 2007 Professional
 
#9

Re: UDP Send, Stream wird verändert?

  Alt 31. Okt 2009, 10:55
Das erklärt natürlich alles.

Vielen Dank für die Info!
  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 06:04 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