Il vantaggio più grande nell'usare un'implementazione dei protocolli packet per radioamatori è probabilmente la facilità con cui si possono sviluppare applicazioni e programmi che li sfruttino.
Sebbene la programmazione di applicativi di rete in Unix vada al di là degli scopi di questo documento, si descriveranno gli elementi essenziali per utilizzare i protocolli AX.25, NET/ROM e Rose all'interno dei vostri programmi.
La programmazione di rete per AX.25, NET/ROM e Rose è, in Linux, piuttosto simile a quella per TCP/IP, visto che la differenza maggiore sta nelle diverse famiglie di indirizzi e nella loro diversa struttura.
I nomi delle famiglie degli indirizzi per AX.25, NET/ROM e Rose sono rispettivamente AF_AX25, AF_NET/ROM e AF_ROSE.
Occorre sempre includere i file header 'netax25/ax25.h', nonchè 'NET/ROM/NET/ROM.h' o 'netrose/rose.h' se avete a che fare con questi protocolli. La struttura di base sarà simile alla seguente:
Per AX.25:
#include <netax25/ax25.h> int s, addrlen = sizeof(struct full_sockaddr_ax25); struct full_sockaddr_ax25 sockaddr; sockaddr.fsa_ax25.sax25_family = AF_AX25 |
Per NET/ROM:
#include <netax25/ax25.h> #include <NET/ROM/NET/ROM.h> int s, addrlen = sizeof(struct full_sockaddr_ax25); struct full_sockaddr_ax25 sockaddr; sockaddr.fsa_ax25.sax25_family = AF_NET/ROM; |
Per ROSE:
#include <netax25/ax25.h> #include <netrose/rose.h> int s, addrlen = sizeof(struct sockaddr_rose); struct sockaddr_rose sockaddr; sockaddr.srose_family = AF_ROSE; |
Nella libreria lib/ax25.a delle AX.25-utilities vi sono routine che effettuano la conversione e il trattamento dei nominativi, anche se naturalmente potete scriverne di vostre.
Le utilità user_call sono eccellenti esempi su cui impostare il vostro lavoro; spendendoci su un po' di tempo si comprende come il novanta percento del lavoro consiste nel riuscire ad aprire il socket. Per la verità effettuare la connessione è semplice, è la preparazione che richiede tempo.
Gli esempi sono semplici a sufficienza da non creare confusione. In caso di dubbi è buona cosa rivolgersi alla mailing list linux-hams, dove senz'altro ci sarà qualcuno che vi darà una mano.