Seite 1 von 1
Daten von TCP in eine Datei umleiten ?
Verfasst: Sonntag 11. Februar 2018, 18:58
von funkheld
Hallo, guten Tag.
Ich möchte bitte Daten von der Variable data in eine Datei umleiten , um sie auszuwerten.
Wie funktioniert das bitte ?
Code: Alles auswählen
import socket
import time
TCP_IP = '127.0.0.1'
TCP_PORT = 5410
BUFFER_SIZE = 1024
MESSAGE = "/version"
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
s.connect((TCP_IP, TCP_PORT))
time.sleep(1)
s.send('1\n')
time.sleep(1)
s.send('switch to 0.\n')
time.sleep(1)
s.send('run myfirstkos2.\n')
time.sleep(1)
while 1:
data = s.recv(BUFFER_SIZE) >>>>>>>>>>> diese Daten umleiten in eine Datei
print data
time.sleep(1)
s.send('\n')
conn.close()
Danke.
Gruss
Re: Daten von TCP in eine Datei umleiten ?
Verfasst: Sonntag 11. Februar 2018, 19:18
von Sirius3
@funkheld: indem Du eine Datei öffnest (open) und das was Du möchtest hineinschreibst (write). Statt `send` `sendall` verwenden. Warum machst Du nach jedem send eine Sekunde Pause? Das Protokoll ist auch seltsam, dass man einen Strom an Daten bekommt, aber hin und wieder eine Neuezeile-Zeichen senden muß? Statt `while 1` muß es `while True` heißen, und das conn, das nicht definiert ist, wird auch nie erreicht.
Re: Daten von TCP in eine Datei umleiten ?
Verfasst: Dienstag 13. Februar 2018, 10:14
von funkheld
Danke.
Das conn sollte s. heißen.
Wenn ich nicht regelmäßig sende bricht der Server ab vom Programm.
Gruss
Re: Daten von TCP in eine Datei umleiten ?
Verfasst: Dienstag 13. Februar 2018, 11:46
von Sirius3
@funkheld: wenn der Server nichts sendet, dann sendest Du auch nichts zurück. Einen Timeout kann das send also nicht verhindern. Wie sieht denn der Server aus?
Re: Daten von TCP in eine Datei umleiten ?
Verfasst: Mittwoch 14. Februar 2018, 19:07
von funkheld
Von hier ist der Server :
https://krpc.github.io/krpc/python/client.html
Es geht um das Programm "Kerbal"
Danke.
Gruss
Re: Daten von TCP in eine Datei umleiten ?
Verfasst: Mittwoch 14. Februar 2018, 20:43
von __deets__
Das ist der doch *Client* fuer den Kerbal Space Program Server. Und das von dir gezeigte Stueck Code erwaehnt den doch gar nicht :K
Re: Daten von TCP in eine Datei umleiten ?
Verfasst: Mittwoch 14. Februar 2018, 22:43
von funkheld
Entschuldigung das ist kOS von Kerbal :
https://ksp-kos.github.io/KOS/tutorials.html
Das wird zum Kerbal-Server geschickt:
--------------------------------------------
time.sleep(1)
s.send('1\n')
time.sleep(1)
s.send('switch to 0.\n')
time.sleep(1)
s.send('run myfirstkos2.\n')
time.sleep(1)
---------------------------------------------
Das Script myfirstkos2 wird vom Server mit run gestartet.
Die Daten die zurückkommen kann ich nicht auseinanderfrimeln.
Gruss
Re: Daten von TCP in eine Datei umleiten ?
Verfasst: Mittwoch 14. Februar 2018, 22:53
von __deets__
Aber ist es nicht Sinn der Sache krpc zu verwenden, das du eben genau das gefriemel nicht machen musst? Dann sollte das Problem doch viel einfacher zu lösen sein. Und wenn du selbst die RPC Schnittstelle ansprechen willst, dann wird’s fortgeschritten. Mit Protocol buffers. Siehe
https://github.com/krpc/krpc/blob/maste ... decoder.py
Das bekommst du nicht mal so eben hin. Und wir auch nicht.
Re: Daten von TCP in eine Datei umleiten ?
Verfasst: Donnerstag 15. Februar 2018, 11:21
von funkheld
Das Problem mit dem Protokoll , das ist es.
Werde mich mal langsam reinspielen.
Danke.
Gruss
Re: Daten von TCP in eine Datei umleiten ?
Verfasst: Donnerstag 15. Februar 2018, 12:28
von __deets__
Ich kann dir nur raten deine Energie darauf zu fokussieren das krpc-Paket ans laufen zu bekommen. Das Protokoll ist ziemlich komplex, dir das selbst zu erarbeiten wird sonst lange dauern.
Re: Daten von TCP in eine Datei umleiten ?
Verfasst: Donnerstag 15. Februar 2018, 15:50
von funkheld
Das krPc läuft wunderbar mit Python 2.7.14 mit den dazugehörigen Programmen.
Ich kann jetzt auch serielle lesbare Daten zu einem anderen Programm übertragen mit einer virtuellen seriellen Schnittstelle mit Pyhton.
Gruss