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, NetRom e Rose all'interno dei vostri programmi.
La programmazione di rete per AX.25, NetRom e Rose è, in Linux, piuttosto simile a quella per TCP/IP, visto che la differenza maggiore sta nelle diverse famiglie di indirizzi.
I nomi delle famiglie degli indirizzi per AX.25, NetRom e Rose sono
rispettivamente AF_AX25
,
AF_NETROM
e AF_ROSE
.
Occorre sempre includere i file header `ax25.h
', nonchè
`netrom.h
' o `rose.h
' se avete a che fare con questi
protocolli. Le impostazioni iniziali saranno simili alle seguenti:
Per AX.25:
#include <ax25.h>
int s, addrlen = sizeof(struct full_sockaddr_ax25);
struct full_sockaddr_ax25 sockaddr;
sockaddr.fsa_ax25.sax25_family = AF_AX25
Per NetRom:
#include <ax25.h>
#include <netrom.h>
int s, addrlen = sizeof(struct full_sockaddr_ax25);
struct full_sockaddr_ax25 sockaddr;
sockaddr.fsa_ax25.sax25_family = AF_NETROM;
Per Rose:
#include <ax25.h>
#include <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 utility 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 rivolgerli alla mailing list
linux-hams
, dove senz'altro ci sarà qualcuno che vi darà una
mano.