Salve, sto facendo un piccolo programma java che deve ricevere dei dati da un periferica di input. Questa periferica ha un suo SDK solo in C, e ho fatto un piccolo programmino C che semplicemente legge i dati che mi servono. Ora devo passare i dati alla mia applicazione java e mi vengono in mente tre modi:
1) Creare una socket TCP tra il mio programmino C e la mia applicazione java per mandare i dati.
2) Usare JNI e fare del mio programmino una libreria dll e mandare i dati con una chiamata JNI.
3) Far mandare dal mio programmino i dati sullo standard output, poi avviarlo come applicazione esterna da java (ProcessBuilder o simili) e leggere i dati dall'output del mio programmino con un InputStreamReader.
I dati non sono molti, ma mi interessa che vengano passati nel minor tempo possibile, quale dei 3 modi che ho elencato prima pensate che sia il più performante?
PS: per ora mi serve su Windows, ma poi dovrò anche fare il porting su Linux, quindi mi servirebbe una soluzione possibilmente multipiattaforma.