Einzelnen Beitrag anzeigen

AJ_Oldendorf

Registriert seit: 12. Jun 2009
385 Beiträge
 
Delphi 12 Athens
 
#1

Indy10 Kommunikation über UDP mit 8 Bit Codierung

  Alt 12. Jun 2009, 09:13
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
  Mit Zitat antworten Zitat