![]() |
ServerSocket Prozeduren zuweisen
Hallo. Ich habe ein Programm ohne Form und möchte einem ServerSocket ein OnClientconnect-Ereigniss zuweisen.
Allerdings hab ich nich so richtig Ahnung wie das ohne Form geht.
Delphi-Quellcode:
Wie muss ich das jetzt machen :gruebel:var Self: TComponent; begin //Server starten Server := TServerSocket.Create(Self); with Server do begin Port := StrToInt(ServerPort); ServerType := stNonBlocking; ThreadCacheSize := 10; OnClientConnect := ???????????????????; Active := True; end; |
Re: ServerSocket Prozeduren zuweisen
Hallo Gerrit,
versuche es mal so:
Delphi-Quellcode:
Grüße vom marabu
type
TMyServerSocket = class(TServerSocket) private procedure ClientConnect(Sender: TObject; Socket: TCustomWinSocket); end; procedure TMyServerSocket.ClientConnect(Sender: TObject; Socket: TCustomWinSocket); begin // ... end; begin //Server starten Server := TMyServerSocket.Create(Self); with Server do begin Port := StrToInt(ServerPort); ServerType := stNonBlocking; ThreadCacheSize := 10; OnClientConnect := ClientConnect; Active := True; end; |
Re: ServerSocket Prozeduren zuweisen
Code:
:(
[Fehler] Server.dpr(58): E2003 Undefinierter Bezeichner: 'ClientConnect'
|
Re: ServerSocket Prozeduren zuweisen
Nicht traurig sein, Gerrit. Die Fehlermeldung stammt von D05? Zeige mal den Code, der nicht compiliert - vielleicht fällt ja jemandem etwas auf...
marabu |
Re: ServerSocket Prozeduren zuweisen
Da issa:
Delphi-Quellcode:
type TMyServerSocket = class(TServerSocket) private procedure ClientConnect(Sender: TObject; Socket: TCustomWinSocket); end; var Self: TComponent; Server: TServerSocket; procedure TMyServerSocket.ClientConnect(Sender: TObject; Socket: TCustomWinSocket); begin //blabla end; begin //Server starten Server := TMyServerSocket.Create(Self); with Server do begin Port := StrToInt(ServerPort); ServerType := stNonBlocking; ThreadCacheSize := 10; OnClientConnect := ClientConnect; Active := True; end; end. |
Re: ServerSocket Prozeduren zuweisen
Wir wär's denn damit?
Delphi-Quellcode:
type TMyServerSocket = class(TServerSocket) private procedure OnClientConnect(Sender: TObject; Socket: TCustomWinSocket); override; end; var Server: TMyServerSocket; procedure TMyServerSocket.OnClientConnect(Sender: TObject; Socket: TCustomWinSocket); begin // Dein Code hier! end; begin //Server starten Server := TMyServerSocket.Create(Self); with Server do begin Port := StrToInt(ServerPort); ServerType := stNonBlocking; ThreadCacheSize := 10; Active := True; end; end. |
Re: ServerSocket Prozeduren zuweisen
Cool das funktioniert schonmal mit dem compilieren jetz :thumb:
Ob die Prozedur auch aufgerufen wird kann ich erst sehen wenn ich den Client feddich hab :mrgreen: |
Re: ServerSocket Prozeduren zuweisen
Ok ich hab schnell ne Form genommen und n client hingepflanzt der verbindet.
Passiert aber nichts ... ich halte den Server so am Leben, vllt liegts daran ja:
Delphi-Quellcode:
while True do
begin //Endlosschleife die den Server am Leben hällt if Proceed = False then Exit; end; |
Re: ServerSocket Prozeduren zuweisen
Zitat:
Wozu du diese Schleife brauchst verstehe ich nicht, denn afaik bleibt dir der Server auch so am Leben, bis du ihm sagst, dass er sich und seine Verbindungen umbringen soll :mrgreen: |
Re: ServerSocket Prozeduren zuweisen
Zitat:
Wenn ich richtig liege, bau dein Server-Programm doch auf ner Form auf. Kannst sie ja mit TForm.Hide unsichbar machen. Dann brauchst du nich diese merkwürdige Schleife... |
Re: ServerSocket Prozeduren zuweisen
Das geht nicht, weil ich
1. Das Programm klein halten möchte und 2. zu blöd für komplettes non VCL bin :mrgreen: @Chimaira: Doch, z.B wenn Proceed per Anweisung vom Client auf False gesetzt werden soll! |
Re: ServerSocket Prozeduren zuweisen
Ich glaub eine Form wird dein Programm nich plötzlich riesig groß machen ^^
|
Re: ServerSocket Prozeduren zuweisen
Zitat:
|
Re: ServerSocket Prozeduren zuweisen
Doch.
Ohne Form: 127 kb Mit Form : 384 kb Zitat:
|
Re: ServerSocket Prozeduren zuweisen
1. In der heutigen Zeit bringt ein 300KB Progi wohl niemand um, oder?
2. Lass UPX über dein Proggi laufen und es is eh nur noch 25% so groß 3. Um dein Progi am Laufen zu halten, ohne das es dabei einfriert, könntest du einen Message-Loop zusammenbauen. Aber frag mich bitte net, wie genau man das macht 4. Mit ner Form hast du alles schon vorgefertigt, definitiv der unproblematischste Weg! |
Re: ServerSocket Prozeduren zuweisen
Liste der Anhänge anzeigen (Anzahl: 1)
Hallo Gerrit,
schreibst du eine Konsolanwendung? Oder ist das einfach eine GUI Anwendung ohne GUI, aus der du die unit FORMS verbannt hast? marabu PS: Falls du gerne liest - ich habe dir etwas Quellcode angeklebt... |
Re: ServerSocket Prozeduren zuweisen
Öhm...Steig ich nich so wirklich durch.
Ich glaub ich muss mir erstmal anguggn was initialization und finalization heisst. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 08:52 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