Hallo, ich bin neu hier im Forum.
Seit ca. einem halben Jahr beschäftige ich mich mit Python3 auf einem Raspberry Pi4.
Im Moment bin ich bei der Socketprogrammierung.
Ich kann z.B.
message = "info1"
sent = sock.sendto(message.encode('utf-8'), server_address)
abschicken und es kommt auch beim Server an.
Ich würde gern den Sever dafür benutzen, um ein paar Statusinformationen zu setzen und abzurufen. Das Abrufen soll von mehreren Clients per Polling erfolgen.
Wie kann ich ähnlich bei Objekten, Eigenschaften (also Variablenwerte) per set- und get-Methoden setzen und lesen?
Geht das überhaupt einfach oder muss ich mir einen String zusammenbasteln, der den Eigenschaftsnamen + den Datenwert in einem enthält und diesen vom Server "auseinanderbasteln" lassen.
Biitte nehmt mir meine Unkenntnis nicht übel.
Ich hätte gern ein paar Infos, wie man so etwas umsetzt.
Vielen Dank
Alex
Anfängerfrage Daten wie an ein Objekt an Server übergeben
Du kannst nur Bytes übertragen. Wenn Du den Bytes einen Sinn geben willst, mußt Du das über ein Protokoll machen. Ein einfaches Protokoll wäre z.B. der String "GET wert\n" oder "SET wert 123\n". Das mußt Du auf der Serverseite dann auseinandernehmen und entsprechend verarbeiten.
@AlexL,
Bei einer Socket-Verbindung werden Bytes übertragen. Man muss also auf Senderseite die dafür sorgen, dass die Daten in Bytes um gewandelt werden und die Empfängerseite muss verstehen, was mit diesen Bytes "gemeint" ist.
Das machst du ja schon mit einfachen Strings, die so in Bytes umgewandelt werden.
Du kannst also Kommandos an den Server schicken, die der dann interpretieren kann und eine entsprechende Antwort zurückschickt.
Zum Üben mit Sockets ist das ein schönes Projekt.
Wenn man es aber wirklich robust implementieren wollte, wäre es einfacher komfortablere Kommunikation per HTTP-Protocol zu verwenden, bzw. Libraries zu nutzen, die eine robuste Kommunikation bereitstellen.
So einfach nicht.Wie kann ich ähnlich bei Objekten, Eigenschaften (also Variablenwerte) per set- und get-Methoden setzen und lesen?
Bei einer Socket-Verbindung werden Bytes übertragen. Man muss also auf Senderseite die dafür sorgen, dass die Daten in Bytes um gewandelt werden und die Empfängerseite muss verstehen, was mit diesen Bytes "gemeint" ist.
Das machst du ja schon mit einfachen Strings, die so in Bytes umgewandelt werden.
Code: Alles auswählen
message.encode('utf-8')
Zum Üben mit Sockets ist das ein schönes Projekt.
Wenn man es aber wirklich robust implementieren wollte, wäre es einfacher komfortablere Kommunikation per HTTP-Protocol zu verwenden, bzw. Libraries zu nutzen, die eine robuste Kommunikation bereitstellen.
Vielen Dank für die schnellen und hilfreichen Anfragen.
Ich werde es so machen und mir die entsprechenden Strings zusammenbasteln und vom Server auseinandernehmen lassen und vice versa.
Mit TCP werde ich mich etwas später beschäftigen.
Ich werde es so machen und mir die entsprechenden Strings zusammenbasteln und vom Server auseinandernehmen lassen und vice versa.
Mit TCP werde ich mich etwas später beschäftigen.