Einzelnen Beitrag anzeigen

Beckman

Registriert seit: 12. Jul 2004
205 Beiträge
 
#2

Re: console application --> events --> clientsocket pr

  Alt 15. Aug 2004, 10:53
ich habs jetzt nochmal gebaut.
naja, noch immer mit dem gleichen wissen ueber console apps, aber eventuell dachte ich koennt ich was eubersehen haben, aber das will trotzdem net.


Code:
program cs;

{$APPTYPE CONSOLE}

uses
  SysUtils,
  ScktComp;

type
  TEvent = class
  public
    procedure ClientConnect(Sender: TObject;
      Socket: TCustomWinSocket);
    procedure ClientConnecting(Sender: TObject;
      Socket: TCustomWinSocket);
    procedure ClientDisconnect(Sender: TObject;
      Socket: TCustomWinSocket);
    procedure ClientError(Sender: TObject; Socket: TCustomWinSocket;
      ErrorEvent: TErrorEvent; var ErrorCode: Integer);
    procedure ClientRead(Sender: TObject; Socket: TCustomWinSocket);
  end;

var
  Event: TEvent;
  Client: TClientSocket;
//  userinput: String;

{------------------------------------------------------------------------------}

procedure Connect();
begin
writeln('connect() executed!');
  if Client = nil then
        begin
        Client := TClientSocket.Create(nil);

        Client.OnConnect := Event.ClientConnect;
        Client.OnConnecting := Event.ClientConnecting;
        Client.OnDisconnect := Event.ClientDisconnect;
        Client.OnError := Event.ClientError;
        Client.OnRead := Event.ClientRead;
        writeln('client created');
        end;

  Client.Host := '192.168.0.3';
  Client.Port := 6667;

  Client.Active := true;
  writeln('client set active');
end;

{------------------------------------------------------------------------------}

procedure TEvent.ClientConnect(Sender: TObject;
  Socket: TCustomWinSocket);
begin
//OnConnect
writeln('connection established');
end;

procedure TEvent.ClientConnecting(Sender: TObject;
  Socket: TCustomWinSocket);
begin
//OnConnecting
writeln('connecting');
end;

procedure TEvent.ClientDisconnect(Sender: TObject;
  Socket: TCustomWinSocket);
begin
//OnDisconnect
writeln('disconnected');
end;

procedure TEvent.ClientError(Sender: TObject;
  Socket: TCustomWinSocket; ErrorEvent: TErrorEvent;
  var ErrorCode: Integer);
begin
//OnError
writeln('error: '+inttostr(errorcode));
end;

procedure TEvent.ClientRead(Sender: TObject;
  Socket: TCustomWinSocket);
begin
//OnRead
writeln('read event!');
end;

{------------------------------------------------------------------------------}

begin
readln;
try
Connect;
        except
        writeln('error!');
        end;
readln;

end.



bei indy tcp client hats gefunkt. auch bei dem sockets.pas tcpclienten von kylix
aber weder dort noch bei indy schaff ichs, den read event zu bekommen.
beim sockets.pas, wo es buf: pcchar gibt, was ich mit strpas umbauen koennt, wird nich mal executed
und indy tcp client hat iregndwie kein onread event mit string var drin

kann mir irgendwer damit helfen?
entweder sagen, wie ich onread bei den anderen bekomme, oder was ich hier falsch mache.......

so schaut die ausgabe aus:

Code:
C:\Dokumente und Einstellungen\Beckman\Eigene Dateien\devel\cs02>cs.exe

connect() executed!
client created
client set active


C:\Dokumente und Einstellungen\Beckman\Eigene Dateien\devel\cs02>
  Mit Zitat antworten Zitat