![]() |
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... |
Alle Zeitangaben in WEZ +1. Es ist jetzt 14:36 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