Passare dati da un applicazione esterna.

di Anonimizzato12964 il
2 risposte
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.

2 Risposte

  • Grazie mille @migliorabile per la risposta. Tuttavia provando con il JNA ho capito per alcune funzioni particolati mi serve che il mio programma C esegua il main(), mi serve per la gestione di alcuni eventi. Quindi JNI e JNA non penso che possano essere usati.
    Penso che mi rimangono quindi solo due strade, socket TCP o ProcessBuilder InputStreamReader, quale pensate che sia il più preformante tra questi?
Devi accedere o registrarti per scrivere nel forum
2 risposte