Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi ServerSocket Prozeduren zuweisen (https://www.delphipraxis.net/54676-serversocket-prozeduren-zuweisen.html)

Rastaman 9. Okt 2005 16:33


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:

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;
Wie muss ich das jetzt machen :gruebel:

marabu 9. Okt 2005 19:23

Re: ServerSocket Prozeduren zuweisen
 
Hallo Gerrit,

versuche es mal so:

Delphi-Quellcode:
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;
Grüße vom marabu

Rastaman 9. Okt 2005 20:57

Re: ServerSocket Prozeduren zuweisen
 
Code:
[Fehler] Server.dpr(58): E2003 Undefinierter Bezeichner: 'ClientConnect'
:(

marabu 9. Okt 2005 21:22

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

Rastaman 9. Okt 2005 21:35

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.

LoRd-MuldeR 9. Okt 2005 23:34

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.

Rastaman 9. Okt 2005 23:47

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:

Rastaman 9. Okt 2005 23:58

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;

JasonDX 10. Okt 2005 00:12

Re: ServerSocket Prozeduren zuweisen
 
Zitat:

Zitat von Gerrit89
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;

Es liegt (u.a.) sicher daran. Denn soweit ich das sehe hat das Programm nirgends die Möglichkeit, die Variable 'Proceed' upzudaten, womit das eine ewige Endlosschleife wird ;)
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:

LoRd-MuldeR 10. Okt 2005 00:15

Re: ServerSocket Prozeduren zuweisen
 
Zitat:

Zitat von Chimaira
Zitat:

Zitat von Gerrit89
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;

Es liegt (u.a.) sicher daran. Denn soweit ich das sehe hat das Programm nirgends die Möglichkeit, die Variable 'Proceed' upzudaten, womit das eine ewige Endlosschleife wird ;)
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:

Ich glaub das Programm hat keine Form. Ohne die Schleife würde es dann zum Ende laufen und Beenden.

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:33 Uhr.
Seite 1 von 2  1 2      

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz