Hallo,
ich habe momentan ein Problem mit dem Empfangen von Daten in meinem Programm.
Das Programm funktioniert soweit, nur es werden nur bei jedem zweiten Sendevorgang Daten empfangen.
Serverseitig werden die Daten jedoch empfangen.
Das ganze läuft in einem AnonymousThread.
Hier mal mein aktueller Quellcode:
Delphi-Quellcode:
TThread.CreateAnonymousThread(procedure ()
var
I: Integer;
c: Byte;
begin
while not Application.Terminated do
begin
if not IdTCPClient1.Socket.InputBufferIsEmpty then
begin
if IdTCPClient1.Connected then
begin
c:=IdTCPClient1.Socket.ReadByte;
//mache was mit den Daten
end;
end
else
IdTCPClient1.Socket.CheckForDataOnSource(100);
end;
end).Start;
Es scheint so als würde der InputBuffer sich nur bei jedem zweiten Empfangen zu füllen.
Wenn ich zum Testen die Daten so abrufe, dann kommt immer alles an:
Delphi-Quellcode:
procedure TTabbedForm.Button1Click(Sender: TObject);
var
s: string;
begin
s:=IdTCPClient1.Socket.Readln();
Memo1.Lines.Add(s);
end;
Ich hoffe mir kann jemand bei dem Problem helfen.
Mit freundlichen Grüßen
XXcD