Moin, ich hab ein Problem mit dem TServerSocket und zwar krieg ich keine Verbindung zustande. Ich hab mir schon ein paar Tuts dazu durchgelesen, vor allem das von
dsdt. Ich weiß nicht was da los ist, hier mal mein Code:
Delphi-Quellcode:
program Server;
{$APPTYPE CONSOLE}
uses
SysUtils,
Windows,
Messages,
ScktComp;
type TServer = class
TCPServer: TServerSocket;
private
procedure OnRead(Sender: TObject; Socket: TCustomWinSocket);
procedure OnConnect(Sender: TObject; Socket: TCustomWinSocket);
public
constructor Create;
end;
var
mread: string;
procedure TServer.OnRead(Sender: TObject; Socket: TCustomWinSocket);
var Msg: string;
begin
Msg := Socket.ReceiveText;
Writeln('>> ' + Msg);
end;
procedure TServer.OnConnect(Sender: TObject; Socket: TCustomWinSocket);
begin
Writeln('moin');
TCPServer.Socket.Accept(Socket.SocketHandle);
end;
constructor TServer.Create;
begin
TCPServer := TServerSocket.Create(nil);
TCPServer.Port := 55555;
TCPServer.ServerType := stThreadBlocking;
TCPServer.OnClientRead := OnRead;
TCPServer.OnClientConnect := OnConnect;
TCPServer.Active := true;
TCPServer.Open;
end;
begin
with TServer.Create do
try
SetConsoleTitle('Pwnertool''s Server');
SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), 12);
Writeln('me is running...'#10);
SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), 7);
Writeln('type `quit'' to quit - but dont tell anyone ;-)'#10);
repeat // Application Mainloop
Readln(mread);
until mread = 'quit';
finally
Free;
end;
end.
Eigentlich nix wildes, aber es wird nichtmal OnConnect aufgerufen. Wenn ich mit telnet drauf verbinden will maults zwar nicht dass keine Verbindung zustande kommt, aber wenn ich was schreib dann in Hintergrundfarbe und beim Server kommt nix an.
Ich hab ja das Gefühl der Server lauscht zwar auf seinem Socket, macht dann aber keinen neuen für die eigentliche Verbindung auf.
Ich bin echt mit meinem Latein am Ende, helft mir