Hallo Zusammen,
habe nun angefangen mit einer TClientSocket. Bin absoluter Anfänger und kenn mich nicht aus, aber muss/soll/darf was für meinen Chef programmieren
Wenn ich den applikation Server starte (dauert 15-35 sek), soll immer wieder durch eine schleife geprüft werden ob port "8090"(auf dem läuft der Server) belegt ist. Wenn belegt, dann ist applikationServer gestartet.
Nun wenn der port belegt ist soll ein BatchFiles aufgerufen werden. Dieses Batchfile hat etwas mit dem Server zu tun und darf nur gestartet werden wenn der ApplikationServer "Jboss" gestartet ist! darum will ich den Port abprüfen.
hab gelesen das geht mit so einer Schnittstelle TClientSocket.
bisher habe ich es so:
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23: 24: 25: 26:
| serverstarted := false;
ClientSocket1.Host := 'localhost'; ClientSocket1.Port := 8090; ClientSocket1.Open;
while serverstarted = false do begin
try ClientSocket1.Active := True;
serverstarted := true; except
sleep(1000); end;
if serverstarted = true then begin SetCurrentDir(dir); ShellExecute(Handle, 'open', tmpPcharBrowser, nil, nil, SW_SHOWNORMAL); Application.Terminate;
end; |
in meiner Schleife soll er immer wieder in die Exception laufen wenn ClientSocket1.active nicht true ist. wenn True dann die Variable serverstarted auf true setzen und in der darauf folgenden if-Bedingung das Batch.File ausführen.
Doch irgendwie läuft er immer über dieses Statement und springt nicht in die Exception. mache ich etwas falsch.? funktioniert dieses ClientSocket1.aktive := True nicht? muss ich etwas anderes versuchen?
oder fehlt mir grundsätzlich etwas....
Mache ich hier etwas grundlegendes falsch?
Gruß.und THX im Voraus
Philipp
Moderiert von
Narses: Delphi-Tags hinzugefügt