![]() |
TIdTCPServer meldet "Port is in use" bei allen Por
Hallo zusammen,
ich versuche nun schon seit Tagen ein TCP-Server zum laufen zu bekommen. Jedoch meldet er bei beim starten immer "Port is in use", egal bei welchen Ports. Unter Windows 2003 Server Enterprise sowie Windows Vista Ultimate. Was läuft da falsch?
Delphi-Quellcode:
nur mal so zum Beispiel wie ich das Ding initializiere.
oTCPServer := TIdTCPServer.Create(nil);
try oTCPServer.DefaultPort := iPort; oTCPServer.Active := True; finally oTCPServer.Free; // Jaja, ich weiß is auch nur zum Test. end; LG Toby EDIT: Indy 10.1.5 |
Re: TIdTCPServer meldet "Port is in use" bei allen
Hast inner Firewall einen Port für die Anwendung freigegeben?
|
Re: TIdTCPServer meldet "Port is in use" bei allen
Jop, hab zur Zeit den Port 2678 für meine Applikation freigegeben. Takes no Effect.
Edit: auch das deaktivieren der Firewall ist nicht die Lösung. Edit2: Hier mal der vollständige Test Code:
Delphi-Quellcode:
program service_console;
{$APPTYPE CONSOLE} uses SysUtils, IdBaseComponent, IdComponent, IdCustomTCPServer, IdTCPServer, IdContext; const iPort = 2768; var oTCPServer: TIdTCPServer; procedure destroyServer; begin oTCPServer.Free; Writeln('[' + TimeToStr(Now()) + ' - ' + DateToStr(Now()) + '] info -> Service stopped'); end; begin try Writeln('[' + TimeToStr(Now()) + ' - ' + DateToStr(Now()) + '] info -> Service initialized'); oTCPServer := TIdTCPServer.Create(nil); try oTCPServer.DefaultPort := iPort; try oTCPServer.Active := True; except Writeln('[' + TimeToStr(Now()) + ' - ' + DateToStr(Now()) + '] info -> port ' + IntToStr(iPort) + ' is in use.'); end; if oTCPServer.Active then Writeln('[' + TimeToStr(Now()) + ' - ' + DateToStr(Now()) + '] info -> Service started on port ' + IntToStr(iPort)); finally destroyServer; end; except on E:Exception do Writeln(E.Classname, ': ', E.Message); end; end. Ausgabe: [20:15:56 - 11.07.2008] info -> Service initialized [20:15:56 - 11.07.2008] info -> port 2768 is in use. [20:15:56 - 11.07.2008] info -> Service stopped |
Re: TIdTCPServer meldet "Port is in use" bei allen
Das ist natürlich ungeschickt - du verdeckst die eigentliche Meldung komplett!!
Delphi-Quellcode:
Warum nicht so:
try
oTCPServer.Active := True; except Writeln('[' + TimeToStr(Now()) + ' - ' + DateToStr(Now()) + '] info -> port ' + IntToStr(iPort) + ' is in use.'); end;
Delphi-Quellcode:
try
oTCPServer.Active := True; except on E:Exception do Writeln('[' + FormatDateTime('yyyy-mm-dd hh:nn:ss', Now) + '] info -> ' + E.Message; end; |
Re: TIdTCPServer meldet "Port is in use" bei allen
angenommen der Fehler käme nicht, was sollte denn dann passieren? Wenn ich deinen Quelltext kurz überfliege gibst du die Komponente direkt nach dem aktivieren schon wieder frei in DestroyServer?! :gruebel:
|
Re: TIdTCPServer meldet "Port is in use" bei allen
Zitat:
Delphi-Quellcode:
oTCPServer.Free; // Jaja, ich weiß is auch nur zum Test. Zum dem Punkt möcht ich erstmal hin, deshalb gebe ich die Ressource wieder frei. @sx2008 Interessant: [22:00:57 - 11.07.2008] error -> You must have an OnExecute event. Edit: onExecute hinzugefügt und es lüppt. Jaja immer diese "fehler > /dev/null" :D |
Alle Zeitangaben in WEZ +1. Es ist jetzt 05:53 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz