Entwickler-Ecke
Internet / Netzwerk - TCP Daten per Indy werden nicht richtig gesendet
ThomasEi - Sa 28.01.12 16:42
Titel: TCP Daten per Indy werden nicht richtig gesendet
Hallo,
ich habe ein Problem, dass die TCP Daten per Indy nicht richtig gesendet werden.
Diese werden verändert als würden Zeichen größer $7F nicht zulässig sein.
Warum? Was mache ich falsch? Wie kann man dies machen?
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13:
| procedure TForm1.Button1Click(Sender: TObject); var s : string; begin IdTCPClient1.Host := IPAdresse.Text; IdTCPClient1.Port := StrToInt(Port.Text); IdTCPClient1.Connect;
s := #$03+#$00+#$8F+#$14+#$FF+#$05+#$0C+#$30; Form1.IdTCPClient1.IOHandler.Write(s); if IdTCPClient1.Connected then IdTCPClient1.Disconnect; end; |
jaenicke - Sa 28.01.12 16:55
Indy wandelt die Zeichensätze leider ungefragt um, das musste ich auch schon feststellen. Irgendwo kann man das Encoding explizit angeben, aus dem Kopf weiß ich nicht wo. Ich kann aber schauen, wenn du das nicht selbst findest. Schau einfach mal nach Encoding oder so.
Ich glaube das konnte man als weiteren Parameter an Write übergeben.
ThomasEi - Sa 28.01.12 17:28
DANKE für den Tipp, so funktioniert es
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12:
| procedure TForm1.Button1Click(Sender: TObject); var s : string; begin IdTCPClient1.Host := IPAdresse.Text; IdTCPClient1.Port := StrToInt(Port.Text); IdTCPClient1.Connect;
s := #$03+#$00+#$8F+#$14+#$FF+#$05+#$0C+#$30; Form1.IdTCPClient1.IOHandler.Write(s, TEncoding.Default);
if IdTCPClient1.Connected then IdTCPClient1.Disconnect; end; |
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2025 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!