![]() |
Von Indy 9 auf Indy 10
Hallo Leute,
ich hänge gerade bei ein paar Änderungen von Indy 9 auf 10. Ich wollte diesen Artikel nachprogrammieren: ![]() Doch ein paar Sachen finde ich in Indy 10 nicht. Zum Beispiel: If Length(AThread.Connection.CurrentReadBuffer)>0 then |
AW: Von Indy 9 auf Indy 10
Zitat:
Delphi-Quellcode:
werden.
if not AThread.Connection.IOHandler.InputBufferIsEmpty then
Grüße Klaus |
AW: Von Indy 9 auf Indy 10
Ich kann auch keine Komplettlösung geben, nur bsp. mit einem netten IMC-Framework "
![]()
Delphi-Quellcode:
Sicher keine hochoffizielle Gesamtübersicht aber wahrscheinlich besser als nichts...
function ReadInt(const AConnection: TIdTCPConnection):{$IFDEF Indy9}Integer{$ELSE}Int64{$ENDIF};
begin Result := {$IFDEF Indy9}AConnection.ReadInteger{$ELSE}AConnection.IOHandler.ReadInt64{$ENDIF}; end; |
AW: Von Indy 9 auf Indy 10
Ok,
den Rest konnte ich lösen. Jetzt finde ich nur noch zweimal Len := AThread.Connection.CurrentReadBufferSize; nicht ^^ |
AW: Von Indy 9 auf Indy 10
vielleicht tut es hier:
Delphi-Quellcode:
Grüße
AContext.Connection.IOHandler.InputBuffer.Size
Klaus |
AW: Von Indy 9 auf Indy 10
Hm, das ist mein aktueller Stand.
Delphi-Quellcode:
Die Möglichkeit vom Artikel klappt leider nicht. Die Antwort vom Server ist nichts. Außerdem finde ich das sehr seltsam, dass diese Antwort in einen String gespeichert wird. Darunter mal mein Lösungsansatz ^^ Der klappt leider auch nicht. Es erscheint eine Fehlermeldung, die mir mit TStream.Seek nicht weiter hilft :/
procedure TFormMain.TCPServerExecute(AContext: TIdContext);
var Cli: TIdTCPClient; Len: Cardinal; Data: string; InputStream: TStream; begin try Cli := nil; try Cli := TIdTCPClient.Create(nil); Cli.Host := 'www.google.de'; Cli.Port := 80; Cli.Connect; repeat if not AContext.Connection.IOHandler.InputBufferIsEmpty then begin //Artikel Len := AContext.Connection.IOHandler.InputBuffer.Size; Data := AContext.Connection.IOHandler.ReadString(Len); Cli.IOHandler.Write(Data); //Mein zweiter Versuch //InputStream:=TStream.Create; //Len:=AContext.Connection.IOHandler.InputBuffer.Size; //AContext.Connection.IOHandler.ReadStream(InputStream,Len,false); //Cli.IOHandler.Write(InputStream,InputStream.Size); //InputStream.Free; end; if Cli.IOHandler.InputBufferIsEmpty then begin //Artikel Len := Cli.IOHandler.InputBuffer.Size; Data := Cli.IOHandler.ReadString(Len); AContext.Connection.IOHandler.Write(Data); //Mein zweiter Versuch //InputStream:=TStream.Create; //Len:=cli.IOHandler.InputBuffer.Size; //cli.IOHandler.ReadStream(InputStream,Len,false); //AContext.Connection.IOHandler.Write(InputStream,InputStream.Size); //InputStream.Free; end; Cli.IOHandler.CheckForDisconnect(False); Cli.CheckForGracefulDisconnect(False); AContext.Connection.IOHandler.CheckForDisconnect(False); AContext.Connection.IOHandler.CheckForDisconnect(False); //SleepEx(1, True); until (not AContext.Connection.Connected) or (not Cli.Connected); finally if Assigned(Cli) then begin Cli.Disconnect; Cli.Free end; AContext.Connection.Disconnect; end; except end; end; Sieht jemand den Fehler? :) |
AW: Von Indy 9 auf Indy 10
ich habe für Indy 10 und hoffentlich fast alle Lebenslagen Samples codes zu Indy 10 und TCP server auf Source forge eingestellt
![]() PS : was fehlt , the GUI beim Server muss thread safe ausgelegt sein, hier gibt es viele gute Hints auf Stackoverflow oder ich poste demnächst noch unser sample hierzu ..... |
Alle Zeitangaben in WEZ +1. Es ist jetzt 06:55 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz