Entwickler-Ecke

Netzwerk - PHP Webserver muss wissen ob C# Programm läuft


pixelport - Mo 01.08.11 16:14
Titel: PHP Webserver muss wissen ob C# Programm läuft
Ich suche eine Möglichkeit das ein php Webserver weis ob auf einem bestimmten PC gerade ein bestimmtes C# Programm läuft.
Ich habe erst darüber Nachgedacht das der Server das Aktuelle Datum und die aktuelle Zeit sendet und diese dann mit der Zeit des PHP Servers verglichen wird. Wäre es möglich dies irgendwie bequemer zu tun?

Über Antworten würde ich mich trotz meiner komplexen Frage sehr freuen. :-)


Yogu - Mo 01.08.11 18:59

Grundsätzlich gibt es zwei Möglichkeiten: Entweder kontaktiert der PHP-Server dein C#-Programm, oder anders herum. Im ersten Fall startet das C#-Programm einen TCP-Server und PHP eine baut eine Verbindung auf. Im Router muss dann eine Protfreigabe eingerichtet werden, damit das C#-Programm den Server starten kann.

Anders herum ist es einfacher: Das C#-Programm sendet eine HTTP-Anfrage an den PHP-Server und sagt ihm, dass es läuft. Auf dem PHP-Server liegt einfach eine Datei, die diese Bestätigung in Empfang nimmt - und am besten noch ein mitgesendetes Passwort überprüft, damit nicht jeder vorgeben kann, das Programm liefe.

Alles ist mit .NET-Bordmitteln und ein paar PHP-Codeschnipseln aus dem Internet und vor allem php.net [http://php.net] machbar.


Oliver M. - Mo 01.08.11 19:22

Hmmm... Es gibt noch eine Möglichkeit, aber dafür braucht man, wenn man sich nicht als Hacker betätigt, spezielle Rechte: man macht es so wie Visual Studios im Server-Explorer. Damit kannst du nämlich, wenn du die Rechte hast und auf dem Zielcomputer angemeldet bist, gans Easy die laufenden Prozesse auslesen. Das kannst du in deinem Programm genauso machen; und ich wette das klappt mit 100% .NET-Unterstützung ;)


Yogu - Mo 01.08.11 20:16

user profile iconOliver M. hat folgendes geschrieben Zum zitierten Posting springen:
Das kannst du in deinem Programm genauso machen; und ich wette das klappt mit 100% .NET-Unterstützung ;)

Er will aber mit PHP prüfen, ob das C#-Programm läuft. Und mit PHP wird es nicht so einfach sein, sich mal schnell mit einem Windows-Rechner zu verbinden.


Oliver M. - Mo 01.08.11 20:20

user profile iconYogu hat folgendes geschrieben Zum zitierten Posting springen:
user profile iconOliver M. hat folgendes geschrieben Zum zitierten Posting springen:
Das kannst du in deinem Programm genauso machen; und ich wette das klappt mit 100% .NET-Unterstützung ;)

Er will aber mit PHP prüfen, ob das C#-Programm läuft. Und mit PHP wird es nicht so einfach sein, sich mal schnell mit einem Windows-Rechner zu verbinden.

Meinst du? Weis nicht. :nixweiss: Remote? Get das nicht? :gruebel:

Windows-Rechner? Das geht doch auch mit einem Apfel :gruebel:


pixelport - Mo 01.08.11 20:43

Vielen Dank für eure Antworten. Ein einfacher HTTP Request ist mir auch schon in den Sinn gekommen. Aber ich muss trotzdem immer noch einen Zeit Stempel mitsenden. Wäre es nicht möglich das der PHP Server das C# Programm anpingt?

Vielen Dank

Moderiert von user profile iconNarses: 2. Frage entfernt.


Yogu - Di 02.08.11 00:01

[quote="user profile iconpixelport"(646829)]Wäre es nicht möglich das der PHP Server das C# Programm anpingt?
Das geht, habe ich doch geschrieben:

user profile iconYogu hat folgendes geschrieben Zum zitierten Posting springen:
Grundsätzlich gibt es zwei Möglichkeiten: Entweder kontaktiert der PHP-Server dein C#-Programm, oder anders herum. Im ersten Fall startet das C#-Programm einen TCP-Server und PHP eine baut eine Verbindung auf. Im Router muss dann eine Protfreigabe eingerichtet werden, damit das C#-Programm den Server starten kann.

Was du brauchst, sind also eine Portfreigabe [http://www.computerbild.de/artikel/cb-Ratgeber-Kurse-DSL-WLAN-Internetverbindung-fuer-Netzwerkspiele-oder-Spezialprogramme-freigeben-_Portfreigabe_-3104975.html] im Router, die Klasse TcpListener in C# und die Funktion fsockopen [http://php.net/manual/de/function.fsockopen.php] in PHP. Im einfachsten Fall schaust du einfach nur, ob die Verbindung zustande kommt.