Autor Beitrag
Niko S.
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 566
Erhaltene Danke: 10

Win 7, Ubuntu
Lazarus, Turbo Delphi, Delphu 7 PE
BeitragVerfasst: Fr 09.10.09 20:50 
Also wie der Titel schon sagt, wird die methode "OnClientRead" nicht aufgerufen, obwohl ich denke, dass alles richtig verlinkt ist.

ausblenden volle Höhe Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
33:
34:
35:
36:
37:
38:
39:
40:
41:
42:
43:
44:
45:
46:
47:
48:
49:
50:
51:
program Project1;

{$APPTYPE CONSOLE}

uses
  SysUtils,
  ScktComp,
  Classes;

type
  TMyServer = class(TServerSocket)
    public
      procedure OnClientRead1(Sender: TObject;
        Socket: TCustomWinSocket);
      procedure ClientConnect1(Sender: TObject;
        Socket: TCustomWinSocket);
  end;

var
  Server: TMyServer;
  aCmd: String;
  aQuit: BOolean;

procedure TMyServer.ClientConnect1(Sender: TObject;
  Socket: TCustomWinSocket);
begin
  WriteLn('User Online.');
end;

procedure TMyServer.OnClientRead1(Sender: TObject;
  Socket: TCustomWinSocket);
begin
  WriteLn('Empfangen: '+Socket.ReceiveText);
end;

begin
  aQuit:= False;
  Server := TMyServer.Create(Server);
  Server.OnClientRead := Server.OnClientRead1;
  Server.OnClientConnect := Server.ClientConnect1;
  Server.Port := 4545;
  Server.Open;
  if (Server.Active) then
    WriteLn('[',TimeToStr(Time),']: Server Online.');
  while not (aQuit) do
  begin
    ReadLn(aCmd);
    if aCmd = 'q' then
      aQuit := True;
  end;
end.


Weiß vielleicht jemand woran das liegen kann?
Also nicht nur OnClientRead sondern on OnClientConnect funktioniert/reagiert nicht.
Man müsste eigentlich das was jmd zum Server sendet, btw wenn sich wer verbindet, in der Console einen Output sehen, oder sehe ich irgendwas falsch?


Moderiert von user profile iconNarses: Topic aus Sonstiges (Delphi) verschoben am Fr 09.10.2009 um 23:17
Narses
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Administrator
Beiträge: 10183
Erhaltene Danke: 1256

W10ent
TP3 .. D7pro .. D10.2CE
BeitragVerfasst: Fr 09.10.09 23:22 
Moin!

Die Sockets laufen non-blocking nicht in einer Konsolenanwendung. :idea: Dadrüber solltest du bei deiner Recherche zu dem Thema aber schonmal gestolpert sein. :?

Entweder im blocking-mode arbeiten oder eine TApplication-basierte Anwendung schreiben. :nixweiss:

cu
Narses

_________________
There are 10 types of people - those who understand binary and those who don´t.
Niko S. Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 566
Erhaltene Danke: 10

Win 7, Ubuntu
Lazarus, Turbo Delphi, Delphu 7 PE
BeitragVerfasst: Fr 09.10.09 23:39 
Ne ist mir leider noch nicht untergekommen, aber gut zu wissen dankeschön.