![]() |
Eine Frage zu TServeroscket
Ich denke das mir hier sicher jemand helfen kann.
Ich möchte in meinem Programm mehrere Tserversockets benutzen, ohne die Komponente dafür mehrere Male auf die Form ziehen zu müssen. Die ServerSockets sollen in einem Array verwaltet werden "array of Tserversocket". D.h ich muss alles von Hand schreiben. Soweit klappt das auch alles bei mir . Die Serversockets sind da und man kann sich mit ihnen verbinden. Mein Problem ist aber , das ich nicht weiss wie ich die onClientRead Procedure für jeden einzelnen server aufrufen kann und ihnen nicht sagen kann , das wenn einer der Server eine Nachricht bekommt, wie es damit umgegehen soll. auf einer Inet-Seite habe ich den Tipp bekommen Server.OnClientRead:=ServerClientRead bzw Server[i].OnClientRead:=ServerClientRead Dort steht, das ich die Procedure dem server von Hand hinzufügen muss. Soweit kann ich das noch nachvollziehen. Aber was kommt dann? Wie kann ich jetzt jedem einzelnem Server sagen was er tun soll , wenn ihn eine Nachricht empfängt. Wäre super wenn mir jemand helfen kann. Thx im Voraus mfg Sin |
Re: Eine Frage zu TServeroscket
du könntest ihnen entweder allen eine eigenes Event geben oder im Event auswerten, welches Socket die nachricht gekriegt hat und dann dementsprechend auswerten. im 2. Fall könntest du mit Tags arbeiten
|
Re: Eine Frage zu TServeroscket
Hi,
du schreibst eine procedure in dieser form:
Delphi-Quellcode:
Diese hat die Form eines TNotify-Events. Wenn alle Server gleich mit empfangenen Nachrichten Umgehen sollen, kannst du sie "normal" schreiben. Du kannst aber auch einzelne Server unterscheiden mit
procedure ServerRead(Sender: TObject; Socket: TCustomWinSocket);
Delphi-Quellcode:
Für Lesevorgänge benutzt du ja den übergebenen Parameter Socket. Falls du Eigenschaften des Servers verändern willst kannst du dass ja dann z.B. so machen:
if (Sender is Server[3]) then
begin . . . end;
Delphi-Quellcode:
(Sender as TAbstractSocket).Active:=false;
|
Re: Eine Frage zu TServeroscket
erst mal danke an euch beiden.
Hab aber noch 2-3 Fragen. (Sender: TObject; Socket: TCustomWinSocket); Sender ist dann die Variable wo die eingehende Verbindung drauf muss. so verstehe ich das mometan aber wie siehts mit Socket: TCustomWinSocket aus. was macht das? und die Procedure muss dann sozusagen in einer Schleife ständig aufgerufen werden? |
Re: Eine Frage zu TServeroscket
Sender ist die Komponente, die die Prozedur aufruft(durch die die Prozedur aufgerufen wird). Socket ist die aktuelle Verbindung.
|
Re: Eine Frage zu TServeroscket
Danke dir :-D.
ps. eine Frage noch . weist du evtl ne seite wo man sich über die ganzen Sachen erkundigen kann? z.b was TCustomWinSocket bedeutet oder TNotify-Events. Bin auf dem Gebiet absoluter Anfänger. mfg Sin |
Re: Eine Frage zu TServeroscket
hi,
na aufjedenfall ist die erste Anlaufstelle die Online-Hilfe von Delphi, Stichwort TNotifyEvent. Wenn du Tutorials suchst, kann ich dir die Seite von ![]() ![]() |
Re: Eine Frage zu TServeroscket
kewl
ich zieh mir das auf jedenfall rein! So, nun hab ich aber auch wirklich alles was ich brauche. merci nochmal mfg SIn |
Re: Eine Frage zu TServeroscket
Moin!
Nachdem was du hier bisher beschrieben hast frage ich mich, ob du wirklich ein Array von TServerSocket brauchst. Daher mal als Informatione: Ein TServerSocket kann mehrere TClientSocket anbinden und somit bis zu x unterschiedliche Clients gleichzeitig bedienen. Bei mehreren TServerSockets müssen alle auch unterschiedliche Portnummern haben - und ich weiss nicht ob du es so lösen wolltest, das jeder Client einen TServerSocket bekommt. MfG Muetze1 |
Alle Zeitangaben in WEZ +1. Es ist jetzt 15:44 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