Ausgabe von Werten auf einem Port

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
Duesentrieb
User
Beiträge: 52
Registriert: Sonntag 16. März 2014, 17:14

Hallo,

ich möchte verschiedene Ausgaben wie z.B. Temperaturmessungen auf einem Port zur Verfügung stellen.
Also beispielsweise so wie mit dem print-Befehl, nur eben dass ich wenn ich meinen Raspberry auf einem bestimmten Port anrufe, diese Daten dort angezeigt werden.
Geht das überheupt?
Was muss ich dafür in mein vorhandenes Programm einbauen?

Danke für eure Unterstützung
nezzcarth
User
Beiträge: 1632
Registriert: Samstag 16. April 2011, 12:47

Im einfachsten Fall kann man so was mit einem TCP-Socket machen (Python bringt schon ein Modul dafür mit; twisted wäre auch noch ein Kandidat ist hier aber vielleicht etwas überdimensioniert). Der nimmt die Verbindung an, schickt den Wert zurück und beendet die Verbindung. Wenn man etwas mehr haben (und sich nicht mit Socket Programmierung rumschlagen) möchte, läuft das daraufhinaus, dass du ein existentes Protokoll wie z.B. HTTP dafür verwenden solltest.
Duesentrieb
User
Beiträge: 52
Registriert: Sonntag 16. März 2014, 17:14

oh, sehr gut!
Hättest du auch ein Beispiel für die TCP-Socket Lösung?
__deets__
User
Beiträge: 14494
Registriert: Mittwoch 14. Oktober 2015, 14:29

Du solltest keine eigene socket programmierung betreiben. Das geht nahezu immer in die Hose. Benutze einen der vielen verfuegbaren Webserver, inklusive des mitgelieferten wsgiref. Findet man auch alles zu in der offiziellen Doku.
Benutzeravatar
noisefloor
User
Beiträge: 3843
Registriert: Mittwoch 17. Oktober 2007, 21:40
Wohnort: WW
Kontaktdaten:

Hallo,

in der Python-Doku gibt es ein Socket HOWTO: https://docs.python.org/3.5/howto/sockets.html

IMHO deutlich einer zu implementieren wäre aber, wenn du die Daten über HHTP und eine REST-Schnittstelle zur Verfügung stellst (welche z.B. JSON zurück liefert).

Das lässt sich z.B. mit Bottle oder Hug in < 10 Zeilen Code realisieren.

Gruß, noisefloor
Antworten