![]() |
Noch 2 Indy Fragen ^^
nabend:
Delphi-Quellcode:
so versuche ich etwas zu lesen, was von dem Client gesendet wird ;)
procedure Tmain.Timer1Timer(Sender: TObject);
var i:integer; frm:Tform; begin timer1.Enabled := false; for i:=0 to 255 do begin if Tserv(main.MDIChildren[i]).getthread = rthread then begin frm := Tserv(main.MDIChildren[i]).getwid; Tserv(frm).txt.Text :=Tserv(frm).txt.Text+rthread.Connection.ReadChar; exit; end; end; end; procedure Tmain.serverExecute(AThread: TIdPeerThread); begin rthread := AThread; timer1.Enabled := true; end; aber dann hängt die ganze Anwendung ... WIESO?
Delphi-Quellcode:
wenn ein zweiter Client connected, dann wird bei dem zweitem und dem ersten Child der Gleiche Thrad übenohmen ... WARUM?
procedure Tmain.timerTimer(Sender: TObject);
var frm: TForm; begin timer.Enabled := false; frm := Tserv.Create(Application); Tserv(frm).mkthread(tmpthread); Tserv(frm).Caption := 'IP: '+tmpthread.Connection.Socket.Binding.PeerIP+'|Channel: '; tmpthread := nil; {for i:=0 to 255 do begin if Tserv(main.MDIChildren[i]) = frm then begin Tserv(main.MDIChildren[i]).mkthread(tmpthread); exit; end; end; } end; |
Re: Noch 2 Indy Fragen ^^
Kann dir zwar auf die Frage nicht direkt antworten, aber warum machst du es nicht ganz einfach mit OnExecute?
|
Re: Noch 2 Indy Fragen ^^
Gib deinem Beitrag bitte einen aussagekräftigen Titel. Desweiteren gilt: Pro Thread nur eine Frage.
|
Re: Noch 2 Indy Fragen ^^
Wenn du ReadChar auf diese weise benutzt, wartet dein programm solange bis etwas geschickt wird.
Mach das ganze entweder in einem extra-thread oder, es gibt imho auch eine nRead-function mit timeout |
Alle Zeitangaben in WEZ +1. Es ist jetzt 03:20 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