Dank des Quellcodes in C++ (?) von Bambini habe ich es geschafft:
Delphi-Quellcode:
Procedure TForm1.BtnBrdcastClick(Sender: TObject);
Var
CList : TList;
I : Integer;
Begin
CList:= IdTCPServer.Contexts.LockList;
Try
For I:= 0 To Pred(CList.Count) Do
Try
TIdContext(CList.Items[I]).Connection.IOHandler.WriteLn(EDBrdCast.Text);
TIdContext(CList.Items[I]).Connection.IOHandler.WriteBufferFlush;
Except End;
Finally
IdTCPServer.Contexts.UnlockList;
End;
End;
Einen Fehler ("Items[I]" statt nur "[I]") und eine Unwissenheit (
WriteBufferFlush
fehlte ganz) habe ich ausgemerzt.
Besonders "lustig" ist nun, dass ich die Strings
mittels Ereignis mit
System.Win.ScktComp.TClientSocket
erhalte. Empfangen funktioniert also, senden leider
nicht - wie unpraktisch. Jetzt suche ich in
IdTCPClient.TIdTCPClient
eine Möglichkeit, die Daten abzurufen. Die Ereignisse habe ich alle durchprobiert. Da tut sich leider nichts. Es ist so unschön, dass
ich irgendwie kein Tutorial finde, in dem einmal die Kommunikation vollständig aufgezeigt wird.
Ist es wirklich so, dass man die Daten "von Hand" über ein Polling auslesen muss? Ooch man!
Gruß, Alex