Autor Beitrag
Sniky
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 53



BeitragVerfasst: Di 22.04.08 17:59 
Hi,

wieder mal ich :)

ich hab da mal wieder eine Problem, kann ich irgend wie beim start von meinem Programm rausfinden ob schon irgend ein programm den port 80 besetzt?

Ich glaub es dürfte ja eigentlich nur ein Server sein der auf Port 80 laufen dürfte. Kann man da irgend wie prüfen ob da schon ein server läuft oder op port 80 noch frei ist?

vielen dank!

Liebe Grüße,
Sniky
Fighter#1
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 787

Win XP, Ubuntu 8.04
Turbo Delphi 2006, Delphi 2005 Pe, Delphi 5 Pe, Netbeans 6.1, Eclipse, Microsoft VisualC#, Dev C++, PHP, HTML, CSS
BeitragVerfasst: Di 22.04.08 18:05 
Versuch halt den Server zu starten und check nach obs nen Fehler gibt oder nich *g*

_________________
Wer andere beherrscht ist stark,
wer sich selbst beherrscht ist mächtig. Lao Tse
Sniky Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 53



BeitragVerfasst: Di 22.04.08 18:31 
user profile iconFighter#1 hat folgendes geschrieben:
Versuch halt den Server zu starten und check nach obs nen Fehler gibt oder nich *g*


ja das ist ja ebend das problem, hab ich mein xampp zu laufen, gibt es im vista einen fehler beim start vom programm, ich weiß aber nicht wie ich diesen fehler abfangen kann?

Danke.

Gruß Sniky
<TargeT>
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 59

Win XP, Win 98
Delphi 7
BeitragVerfasst: Di 22.04.08 18:46 
Mit

ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
try
//Hier kommt rein was ausgeführt werden soll....
except
//Hier kommt rein was gemacht werden soll wenn zwischen try und except ein Fehler eintritt
end;


Oder

ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
try
//Hier kommt rein was ausgeführt werden soll....
finally
//Finally ist fast das selbe wie except, nur wird finally immer ausgeführt egal ob ein Fehler eintritt oder nicht
//der Fehler wird aber trotzdem abgefangen
end;
Yogu
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 2598
Erhaltene Danke: 156

Ubuntu 13.04, Win 7
C# (VS 2013)
BeitragVerfasst: Di 22.04.08 19:42 
user profile icon<TargeT> hat folgendes geschrieben:
ausblenden Delphi-Quelltext
 
4:
5:
{ ... }
//Finally ist fast das selbe wie except, nur wird finally immer ausgeführt egal ob ein Fehler eintritt oder nicht
//der Fehler wird aber trotzdem abgefangen

Der erste Teil stimmt, finally wird immer aufgerufen, auch wenn eine Ausnahme ausgelöst wird. Beim zweiten Satz muss ich dich korrigieren: Der Fehler wird nicht abgefangen.. In finally sollten Anweisungen stehen, die unbedingt notwendig sind. Zum Beispiel den Cursor von Sanduhr auf Zeiger zurücksetzen, EndUpdate aufrufen oder Objekte freigeben.

Du brauchst auf jeden Fall except, um den Fehler abzufangen. Aber du solltest auf jeden Fall nur den erwarteten Fehler abfangen - alle anderen müssen gemeldet werden.

ausblenden Beispiel:
1:
2:
3:
4:
5:
6:
7:
try
  DoSomething;
  DoSomethingOther;   // Hier könnte möglicherweise eine Exception der Klasse EMyError auftreten.
except
  // Bei EMyError nichts tun, sonst Fehler weiterleiten (melden)
  on E: EMyError do else raise;
end;
<TargeT>
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 59

Win XP, Win 98
Delphi 7
BeitragVerfasst: Di 22.04.08 19:52 
Das versteh ich nicht ganz Yogu.....
Sobald ein Fehler zwischen try und finally eintritt bekomme ich ja keine Fehlermeldung, sondern es wird sofort der Teil zwischen finally und end; ausgeführt

zb:
ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
try
 a:= tstringlist.Create;
 a.Add('test');
 a.SaveToFile('test.txt');
finally
 a.Free;
end;


Wo müsste denn hier ein except rein?
Yogu
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 2598
Erhaltene Danke: 156

Ubuntu 13.04, Win 7
C# (VS 2013)
BeitragVerfasst: Di 22.04.08 20:00 
Du musst um das Ganze Konstrukt die try {...} except on E: EYourException do else raise end; bauen. Dann wird der Fehler EYourException komplett ignoriert. Du könntest auch zwischen do und else Code schreiben, der Beim Fehler ausgeführt werden soll.
Sniky Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 53



BeitragVerfasst: Mi 23.04.08 15:39 
ok, hab ich jetzt gelösst, ich gucke einfach ob localhost oder 127.0.0.1 schon zu erreichen ist und wenn ja starte ich den server erstmal nicht... nur hab ich da jetzt gleich das nächste problem...

Ich möchte dann gerne, wenn der Server nicht gestartet ist den Port von diesen Server über ein Formularfeld ändern.

Nun hab ich ja schon rausgefunden wo ich den port ändere und das es so auch funktioniert:

object HTTPServer: TIdHTTPServer
Active = True
Bindings = <>
DefaultPort = 2001
OnCommandGet = HTTPServerCommandGet
AutoStartSession = True
SessionTimeOut = 1200000
Left = 168
Top = 24
end

da steht ja dann der defaultPort (hab ich erstmal auf 2001 gestellt)

Nur steht das ja jetzt in der main.cfg... wenn das jetzt in der main.pas stehen würde, wüsste ich das ja vielleicht sogar wie ich das machen könnte, nur so weiß ich das jetzt leider gar nicht :(

Ich hab mir jetzt schon ein Textfeld angelegt und alles versucht nur bekomme ich das irgend wie wirklich nicht hin.

Mein Textfeld heißt jetzt: Edit1 und in dieses trage ich eigentlich den Port ein und mochte dann ganz gerne, das DefaultPort dann das wird was im Edit1 Feld steht.

Kann mir da vieleicht jemand sagen wie ich das machen kann?

Vielen Dank!

Liebe Grüße,
Sniky
Yogu
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 2598
Erhaltene Danke: 156

Ubuntu 13.04, Win 7
C# (VS 2013)
BeitragVerfasst: Mi 23.04.08 16:52 
Erstelle bitte ein neues Topic mit diesem Thema. Das hier heißt "prüfen ob port 80 schon benutzt wird?" und hat relativ wenig mit einer Portänderung zu tun. Dann können wir gezielter antworten.

Grüße,
Yogu
Sniky Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 53



BeitragVerfasst: Mi 23.04.08 17:00 
ok, sorry... ich dachte passt da auch noch ganz gut mit rein, da das eine ja irgend wie die andere frage mit sich bringt ;) aber egal mach ich ein neues auf...

Danke.

Gruß Sniky
Yogu
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 2598
Erhaltene Danke: 156

Ubuntu 13.04, Win 7
C# (VS 2013)
BeitragVerfasst: Mi 23.04.08 17:07 
user profile iconSniky hat folgendes geschrieben:
ich dachte passt da auch noch ganz gut mit rein, da das eine ja irgend wie die andere frage mit sich bringt

Lieber zu viele Topics aufmachen, als zu wenig. Auf gezielt beschriebene Probleme (und damit auch wirklich nur auf ein Problem pro Topic) kann sehr viel effizienter geantwortet werden als auf ein Mischmasch aus mehreren Fragen. Das nur so am Rande erwähnt.