Python Kommunikation zwischen 2 PC's
Python Kommunikation zwischen 2 PC's
Hallo liebes Forum,
ich möchte gerne ein Programm umsetzen und weis aber noch nicht wie. Ich bräuchte nur einen Tipp mit was man das am besten machen könnte.
PC1
auf PC1 läuft ein Normales Python Skript in einem DOS Fenster. Dieses Skript Arbeitet eine Liste ab. Das Skript gibt den Status des Programms aus ca 100 mal pro sek.
PC2
mit diesem PC will ich nun den gleichen Status sehen wie auf PC1. so eine art remote desktop. im grunde würd es reichen wenn ich mein skript auf PC1 anfunken könnte und mir die Daten übergeben werden.
Hat jemand eine Idee wie man das am besten machen kann?
Danke!
ich möchte gerne ein Programm umsetzen und weis aber noch nicht wie. Ich bräuchte nur einen Tipp mit was man das am besten machen könnte.
PC1
auf PC1 läuft ein Normales Python Skript in einem DOS Fenster. Dieses Skript Arbeitet eine Liste ab. Das Skript gibt den Status des Programms aus ca 100 mal pro sek.
PC2
mit diesem PC will ich nun den gleichen Status sehen wie auf PC1. so eine art remote desktop. im grunde würd es reichen wenn ich mein skript auf PC1 anfunken könnte und mir die Daten übergeben werden.
Hat jemand eine Idee wie man das am besten machen kann?
Danke!
ich hab das nun mal getestet das is schon nicht so schlecht das ich da gefunden hab,
http://code.activestate.com/recipes/81549/
für all die die da auch intresse haben
http://code.activestate.com/recipes/81549/
für all die die da auch intresse haben
- gerold
- Python-Forum Veteran
- Beiträge: 5554
- Registriert: Samstag 28. Februar 2004, 22:04
- Wohnort: Telfs (Tirol)
- Kontaktdaten:
alpha hat geschrieben:mir ist nicht ganz klar wieso man dafür XML-RPC braucht. Mach doch einfach ne Socketkommunikation auf und schick die Strings da drüber. Dürfte auch viel schneller sein.
Hallo alpha!
Natürlich ist eine reine Socketkommunikation schneller. Aber dafür musst du dir **alles** selber programmieren. Für XMLRPC gibt es in Python Highlevel-Module, die sich um alles kümmern. Du kannst über XMLRPC direkt Funktionen des Servers aufrufen. Der Client wartet, bis die Funktion am Server abgearbeitet wurde und empfängt das Ergebnis. Und das mit nur wenigen Codezeilen, und ohne dass du wissen musst, wie das übertragen wird. Usw.
XMLRPC ist highlevel. Socket ist lowlevel. Es gibt keinen Grund, alles selber zu programmieren, wenn nur mal ein paar Daten übertragen werden müssen. Wenn es nicht auf Geschwindigkeit ankommt.
Kleines XMLRPC-Beispiel: http://www.python-forum.de/topic-5478.html
mfg
Gerold

http://halvar.at | Kleiner Bascom AVR Kurs
Wissen hat eine wunderbare Eigenschaft: Es verdoppelt sich, wenn man es teilt.
Wissen hat eine wunderbare Eigenschaft: Es verdoppelt sich, wenn man es teilt.
ich hab mir das inzwischen ein wenig angschaut und ich glaub das socket das richtige für mich ist. ich möcht ja eine funktion in python starten und am client das ergebniss sehen.
eine frage noch, wenn ich mich weg connecte vom server, bleibt dann auch der prozess stehen? und wenn ich michzurück connecte, sehe ich diesen dann wieder?
eine frage noch, wenn ich mich weg connecte vom server, bleibt dann auch der prozess stehen? und wenn ich michzurück connecte, sehe ich diesen dann wieder?
- Hyperion
- Moderator
- Beiträge: 7472
- Registriert: Freitag 4. August 2006, 14:56
- Wohnort: Hamburg
- Kontaktdaten:
bcit6k hat geschrieben:ich hab mir das inzwischen ein wenig angschaut und ich glaub das socket das richtige für mich ist. ich möcht ja eine funktion in python starten und am client das ergebniss sehen.
Ja und wieso spricht das dann gegen xml-rpc?
eine frage noch, wenn ich mich weg connecte vom server, bleibt dann auch der prozess stehen? und wenn ich michzurück connecte, sehe ich diesen dann wieder?
Das musst Du dann selber implementieren. (Was genau meinst Du mit "prozess"?)
normalerweise rufe ich auf einem pc ein pythin skript auf das mehrere stunden (tage) läuft. ich gebe mir den akzuellen status immer mit print aus. so weit ist das ja ganz ok. nur wenn ich sehen will wie weit das skript ist muss ich mich erst per remote auf den jeweiligen pc einklinken und nachschaun.
besser währe es wenn ich mich nur mit python verbinden kann und die aktuellen statusmeldungen des skripts zurück bekomme
so was schwebt mir vor
besser währe es wenn ich mich nur mit python verbinden kann und die aktuellen statusmeldungen des skripts zurück bekomme
so was schwebt mir vor
- Hyperion
- Moderator
- Beiträge: 7472
- Registriert: Freitag 4. August 2006, 14:56
- Wohnort: Hamburg
- Kontaktdaten:
bcit6k hat geschrieben:normalerweise rufe ich auf einem pc ein pythin skript auf das mehrere stunden (tage) läuft. ich gebe mir den akzuellen status immer mit print aus. so weit ist das ja ganz ok. nur wenn ich sehen will wie weit das skript ist muss ich mich erst per remote auf den jeweiligen pc einklinken und nachschaun.
Dann lasse dir doch die Ergegnisse zumailen? Oder erstelle eine Webseite, und lasse sie Dir dann ausliefern.
besser währe es wenn ich mich nur mit python verbinden kann und die aktuellen statusmeldungen des skripts zurück bekomme
Ja aber genau das kannst Du doch per rpc-xml auch tun! Wo ist da der Vorteil von low-Level socket-Programmierung? Natürlich brauchst Du eine Strategie, wie Du die Kommunikation zwischen Server und dem lange laufenden Script realisierst - aber das muss man sowieso klären (außer bei den oben genannten Alternativen!)
@Gerold:
So wie ich bcit6k verstanden habe möchte er das was er mit print("irgendwas") auf der Konsole ausgibt mit auf nen anderen PC schicken.
Das liese sich ja schon fast mit dem in der Python Dokumentation vorhandenen Beispiel erschlagen. Zumal so wie ich es verstanden habe nur um einen Client handelt der sich auf den Server verbindet.
Ich würde das schematisch so machen.
Socketserver in bestehendes Programm einbinden (das bis jetzt den Status auf dem schirm ausgibt)
mit socketclient auf socketserver verbinden
Wenn Server Verbindung erkennt über
connection.send("teststring") - Methode Ausgaben an Client schicken
Hoffe ich habs richtig verstanden.
Grüße
alpha
So wie ich bcit6k verstanden habe möchte er das was er mit print("irgendwas") auf der Konsole ausgibt mit auf nen anderen PC schicken.
Das liese sich ja schon fast mit dem in der Python Dokumentation vorhandenen Beispiel erschlagen. Zumal so wie ich es verstanden habe nur um einen Client handelt der sich auf den Server verbindet.
Ich würde das schematisch so machen.
Socketserver in bestehendes Programm einbinden (das bis jetzt den Status auf dem schirm ausgibt)
mit socketclient auf socketserver verbinden
Wenn Server Verbindung erkennt über
connection.send("teststring") - Methode Ausgaben an Client schicken
Hoffe ich habs richtig verstanden.
Grüße
alpha
Wer ist online?
Mitglieder in diesem Forum: 0 Mitglieder