Hallo,
erst mal sorry das ich im Moment das Board Floode. Aber ich komme wirklich nicht weiter.
Ich habe nun einen IdTCPServer und einen IdTCPClient erstellt. Alles klappt wunderbar soweit ich das im Moment beurteilen kann.
Gefunden habe ich das
hier unter Punkt 2.3. Das scheint zwar noch für
Indy 9 zu sein, aber ich habe es umgeschrieben so gut ich konnte.
Hier ist mein Code vom IdTCPServer.OnExecute und ein Bild wie die "Bilder" aussehen die ich bekomme.
Wäre toll wenn mir jemand Helfen könnte. Ich komme einfach nicht weiter.
Netten Gruß und vielen Dank im Voraus
Delphi-Quellcode:
procedure TfMain.IdTCPServer1Execute(AContext: TIdContext);
var
Cli :TIdTCPClient;
IOhnd :TIdIOHandlerStack;
Data :string;
Len :Int64;
MemStream :TMemoryStream;
Buf :TIdBytes;
begin
try
GblURL:='192.168.0.244';
Cli := nil;
try
// #### Create IOHandler ####
IOhnd:=TIdIOHandlerStack.Create(nil);
{ Create & Connect to Server }
Cli:=TIdTCPClient.Create(nil);
Cli.IOHandler:=IOhnd;
Cli.Host := GblUrl;
Cli.Port := 80;
{ Connect to the remote server }
Cli.Connect;
{ Read/Write loop }
repeat begin
{ Read data from Client }
Len :=AContext.Connection.IOHandler.InputBuffer.Size;
if ( Len>0 ) then begin
AContext.Connection.IOHandler.ReadBytes(Buf,Len,False); //,Len,False
{ Write it to the Server }
Cli.IOHandler.Write(Buf,Len);
end;
{ Read data from Server }
Len:=Cli.IOHandler.InputBuffer.Size;
if ( Len>0 ) then begin
Cli.IOHandler.ReadBytes(Buf,Cli.IOHandler.InputBuffer.Size,False);
{ Write it to the Server }
AContext.Connection.IOHandler.Write(Buf);
end;
{ Release system slizes }
SleepEx(1, True);
end;
until (not AContext.Connection.Connected) or (not Cli.Connected);
finally
if Assigned(Cli) then
begin
Cli.Disconnect;
Cli.Free
end;
{ Disconnect real client }
AContext.Connection.Disconnect;
if ( Assigned(IOhnd) ) then begin
IOhnd.Free;
end;
end;
except
end;
end;