Einzelnen Beitrag anzeigen

Schwedenbitter

Registriert seit: 22. Mär 2003
Ort: Finsterwalde
622 Beiträge
 
Turbo Delphi für Win32
 
#7

AW: TIdTCPServer (Indy) und TClientSocket

  Alt 16. Nov 2016, 20:15
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
Alex Winzer
  Mit Zitat antworten Zitat