Hallo erstmal
UDP Kommunikation mit
Indy Komponenten
BDS 2006 und
Indy 10 = OK
RAD 2009 und
Indy 10 = NICHT OK
Ich benutze den TIdUDPClient um Daten über UDP zu senden.
1. TIdUDPClient
Funktionsaufruf:
procedure Send(const AData: string); overload;
2. TIdUDPClient abgeleitet von TIdUDPBase
Funktionsaufruf:
procedure Send(const AHost: string; const APort: TIdPort; const AData: string);
Diese Funktion ruft widerrum folgende auf:
SendBuffer(AHost, APort, ToBytes(AData));
Hier liegt der Knausus Knaktus...
ToBytes(AData) wird aufgerufen mit einem Standardparameter als const
function ToBytes(const AValue: string; const AEncoding: TIdEncoding = en7Bit): TIdBytes; overload;
{$IFDEF USEINLINE}inline;{$ENDIF}
begin
Result := ToBytes(AValue, -1, 1, AEncoding);
end;
Warum wird hier überall mit der 7 Bit Codierung gearbeitet?
Man hat von außen keine Chance dies zu ändern...
Ich brauche aber unbedingt das 8 Bit Format. Es gibt ja auch den Parameter en8Bit aber ich kann
ja in den
Indy's nichts ändern.
Wie bekomme ich es hin, dass meine ganze Kommunikation (über UDP) mit en8Bit arbeitet?
Es gibt in den
Indy's keine Möglichkeit einen globalen Schalter zu setzen, dass mit 8 Bit
Verschlüssung alles gemacht werden soll.
Die Kommunikation über UDP mit
BDS 2006 und den darin mitgelieferten Indy10 funktioniert.
Nur in RAD2009 funktioniert es nicht.
Habt ihr eine Lösung oder Idee hierfür?
Meine Software auf 7 Bit Codierung umzustellen kommt dabei wirklich nicht in Frage...
Viele Grüße im voraus,
Alex