Hi,
ich steh auf'm Schlauch. Ich hab mir eine Thread erstellt, der eigentlich eine Clientverbindung zu einem Server aufbauen soll.
Der Thread wird auch gestartet, kommt aber lediglich bis zum Connect. Dann geht's nicht weiter.
Hier mal der Code:
Delphi-Quellcode:
constructor TTCPThread.Create(CreateSuspended: Boolean; BindIP:
string; BindPort: Integer; Host:
string; Port: Integer);
begin
inherited Create(CreateSuspended);
Self.FTCPClient:=TIdTCPClient.Create(
nil);
FBindIP:=BindIP;
FBindPort:=BindPort;
FHost:=Host;
FPort:=Port;
FreeOnTerminate:=True;
end;
procedure TTCPThread.Execute;
begin
Try
//FTCPClient.BoundIP:=FBindIP;
//FTCPClient.BoundPort:=FBindPort;
FTCPClient.host:=FHost;
FTCPClient.Port:=FPort;
FTCPClient.ConnectTimeout:=2000;
Synchronize(
Procedure
begin
frm_main.Writelog('
Init TCP-Connection');
end
);
FTCPClient.Connect;
//<- Bis hier hin komme ich noch im Debugger,
if not FTCPClient.Connected
then // hierhin kommt er nicht, auch nicht nach dem Timeout
begin
Synchronize(
Procedure
begin
frm_main.Writelog('
TCP-Verbindung fehlgeschlagen');
end
);
Self.Terminate;
end else begin
Synchronize(
Procedure
begin
frm_main.Writelog('
TCP-Verbindung hergestellt');
end
);
end;
while not Terminated
do begin
Self.Suspend;
if Terminated
then
break;
end;
finally
if FTCPClient.Connected
then begin
FTCPClient.SendCmd('
Disconnect');
FTCPClient.Disconnect;
end;
FTCPClient.Free;
end;
end;
Auch beim Server wird kein OnConnect-Ereignis ausgelöst. Hat einer eine Idee was ich falsch mache?