Raspberry Pi4 - ETH nutzen via C Code

Gast #6695557
Lesenswert?

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 #6695571
Lesenswert?

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.
#6695588
Lesenswert?

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

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren