Raspberry Pi4 - ETH nutzen via C Code

Gast #6695522
Hallo,

wie kann man denn bitte beim RPi4 via C auf ETH zugreifen?

Gibt es irgendwo Beispiel Code in C, mit dem man Daten via
ETH übertragen kann um dann z.B. am PC via virtuellem COM-Port diese
Daten weiter zu verarbeiten?

Welche C Libraries gibt es dazu ?


Danke
Gast
Falls du mit "ETH" Ethernet meinst - ja, man kann mit raw Sockets direkt 
Ethernet-Frames senden. Das macht aber sehr wenig Sinn, weil das dann 
mit dem Linux-eigenen IP-Stack kollidiert und du dann IP, TCP & Co 
komplett selbst implementieren müsstest.

Es ist viel, viel einfacher direkt TCP-Sockets zu verwenden und dabei 
völlig zu ignorieren ob das physische Medium jetzt Ethernet, WLAN oder 
was auch immer ist. Dazu benutzt man in C das klassische BSD-Socket API:

https://en.wikipedia.org/wiki/Berkeley_sockets

https://man7.org/linux/man-pages/man2/socket.2.html

https://www.linuxhowtos.org/C_C++/socket.htm

Noch einfacher ist es ein High-Level-Protokoll zu verwenden welches die 
Details noch weiter abstrahiert, wie z.B. https://zeromq.org/ .
Gast
PS: Das Ganze hat auch nichts mit Raspberry-PI zu tun, sondern ist 
allgemein für Linux/Unix so. Der Raspberry-spezifische Teil ist hier im 
Kernel versteckt und für C-Anwendungs-Programmierung nicht sichtbar.
Wirklich verstanden habe ich die Frage nicht.

Aber möglicherweise kommt man ums Programmieren herum, wenn man netcat 
hat und verstanden hat.
Damit kann man allerlei pipes und Netzwerkverbindungen kreuz und quer 
verbinden, netcat reicht einfach alles durch.

Beispielsweise kann man einen listening socket aufmachen und 
stdin/stdout von netcat damit verbinden, oder sich zu einem 
existierenden listening socket auf einem anderen Rechner verbinden (der 
auch von einem netcat kommen kann, aber nicht muß).

Wenn du deine Daten jetzt in stdin/stdout von netcat bekommst, hast du 
wahrscheinlich schon gewonnen.

Eventuell ist auch ssh -L ... eine Überlegung wert.

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 5 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.