8
我的Java應用程序應該控制直接連接到我的計算機網絡接口(Ubuntu和Windows)的外部設備(EtherCAT總線技術)。沒有其他網絡設備連接。通信已經在標準IEEE 802.3以太網幀上完成,沒有IP協議棧。如何在沒有TCP/IP協議棧的Java中發送以太網幀
用於發送數據實施例:
int etherType = 0x88A4; // the EtherType registered by IEEE
byte[] macBroadcast = new byte[] {0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF};
byte[] macSource = new byte[] ... ; // MAC Address of my network interface card
byte[] buffer = ... // the data to send
device.write(macSource, macBroadcast, etherType, buffer);
我試圖JNetPcap,它使用PCAP本地庫。給定的API沒問題,但是在重負載下存在多線程問題,這迫使我放棄。
netty.io也是候選人。我不確定,但TCP/IP協議棧是強制性的。我對嗎?
是否有其他想法與低級以太網幀進行通信?我更喜歡像netty.io這樣的純java庫,如果存在的話。
當然,JNA/JNI也是一個選項。但我不想寫C代碼。
其他選擇?
您是否找到任何解決方案? – arrowman 2017-03-09 22:04:52