Meine Java-Anwendung sollte ein externes Gerät (EtherCAT-Bus-Technologie) steuern, das direkt mit der Netzwerkschnittstelle meines Computers (Ubuntu und Windows) verbunden ist. Keine anderen Netzwerkgeräte sind angeschlossen. Die Kommunikation muss auf Standard IEEE 802.3 Ethernet Frames ohne IP-Stack erfolgen.
Beispiel für das Senden von Daten:
%Vor%Ich habe JNetPcap versucht, das die pcap native Bibliothek verwendet. Die angegebene API war in Ordnung, aber es gab Multithread-Probleme bei hoher Auslastung, was mich dazu zwang, aufzugeben.
netty.io war auch ein Kandidat. Ich bin mir nicht sicher, aber ein TCP / IP-Stack ist obligatorisch. Habe ich Recht?
Gibt es andere Ideen, um mit Low-Level-Ethernet-Frames zu kommunizieren? Ich würde eine reine Java-Bibliothek wie netty.io bevorzugen, falls eine existiert.
Natürlich ist JNA / JNI auch eine Option. Aber ich möchte nicht C-Code schreiben.
Andere Alternativen?
Dies sind die Optionen, die ich finden konnte:
Ich habe auch Kommentare zu dem Effekt gesehen, dass jNetPcap Thread-sicher sein soll, aber in der Praxis ist es nicht; d. h. es ist fehlerhaft, wenn es mit mehreren Threads verwendet wird.
Tags und Links java ethernet raw-ethernet