AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Netzwerke Delphi TIdTCPServer meldet "Port is in use" bei allen Ports
Thema durchsuchen
Ansicht
Themen-Optionen

TIdTCPServer meldet "Port is in use" bei allen Ports

Ein Thema von xSkaschY · begonnen am 11. Jul 2008 · letzter Beitrag vom 11. Jul 2008
Antwort Antwort
xSkaschY

Registriert seit: 19. Jun 2006
Ort: Bünde
95 Beiträge
 
Delphi 2007 Professional
 
#1

TIdTCPServer meldet "Port is in use" bei allen Por

  Alt 11. Jul 2008, 18:45
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:
oTCPServer := TIdTCPServer.Create(nil);
try
   oTCPServer.DefaultPort := iPort;
   oTCPServer.Active := True;
finally
   oTCPServer.Free; // Jaja, ich weiß is auch nur zum Test.
end;
nur mal so zum Beispiel wie ich das Ding initializiere.


LG Toby


EDIT: Indy 10.1.5
  Mit Zitat antworten Zitat
Benutzerbild von Die Muhkuh
Die Muhkuh

Registriert seit: 21. Aug 2003
7.332 Beiträge
 
Delphi 2009 Professional
 
#2

Re: TIdTCPServer meldet "Port is in use" bei allen

  Alt 11. Jul 2008, 18:49
Hast inner Firewall einen Port für die Anwendung freigegeben?
  Mit Zitat antworten Zitat
xSkaschY

Registriert seit: 19. Jun 2006
Ort: Bünde
95 Beiträge
 
Delphi 2007 Professional
 
#3

Re: TIdTCPServer meldet "Port is in use" bei allen

  Alt 11. Jul 2008, 18:51
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
  Mit Zitat antworten Zitat
Benutzerbild von sx2008
sx2008

Registriert seit: 15. Feb 2008
Ort: Baden-Württemberg
2.332 Beiträge
 
Delphi 2007 Professional
 
#4

Re: TIdTCPServer meldet "Port is in use" bei allen

  Alt 11. Jul 2008, 19:46
Das ist natürlich ungeschickt - du verdeckst die eigentliche Meldung komplett!!
Delphi-Quellcode:
try
  oTCPServer.Active := True;
except
  Writeln('[' + TimeToStr(Now()) + ' - ' + DateToStr(Now()) + '] info -> port ' + IntToStr(iPort) + ' is in use.');
end;
Warum nicht so:
Delphi-Quellcode:
try
  oTCPServer.Active := True;
except
  on E:Exception do
    Writeln('[' + FormatDateTime('yyyy-mm-dd hh:nn:ss', Now) + '] info -> ' + E.Message;
end;
  Mit Zitat antworten Zitat
Benutzerbild von SirThornberry
SirThornberry
(Moderator)

Registriert seit: 23. Sep 2003
Ort: Bockwen
12.235 Beiträge
 
Delphi 2006 Professional
 
#5

Re: TIdTCPServer meldet "Port is in use" bei allen

  Alt 11. Jul 2008, 19:55
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?!
Jens
Mit Source ist es wie mit Kunst - Hauptsache der Künstler versteht's
  Mit Zitat antworten Zitat
xSkaschY

Registriert seit: 19. Jun 2006
Ort: Bünde
95 Beiträge
 
Delphi 2007 Professional
 
#6

Re: TIdTCPServer meldet "Port is in use" bei allen

  Alt 11. Jul 2008, 21:01
Zitat von SirThornberry:
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?!
Wer lesen kann ist klar im Vorteil.

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"
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 03:55 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz