La mia applicazione Java dovrebbe controllare un dispositivo esterno (tecnologia EtherCAT Bus) direttamente connesso all'interfaccia di rete del mio computer (Ubuntu e Windows). Nessun altro dispositivo di rete è connesso. La comunicazione è stata effettuata su frame IEEE 802.3 Ethernet standard senza stack IP.Come inviare frame Ethernet in Java senza stack TCP/IP
Esempio per l'invio di dati:
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);
ho cercato JNetPcap, che utilizza il pcap libreria nativa. L'API fornita andava bene, ma c'erano problemi di multithreading su carichi pesanti, che mi hanno costretto a rinunciare.
netty.io era anche un candidato. Non sono sicuro, ma uno stack TCP/IP è obbligatorio. Ho ragione?
Ci sono altre idee per comunicare con frame Ethernet di basso livello? Preferirei una libreria java pura come netty.io, se ne esiste una.
Naturalmente anche JNA/JNI è un'opzione. Ma non voglio scrivere codice C.
Altre alternative?
Hai trovato qualche soluzione? – arrowman