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>