<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN"> <HTML> <HEAD> <TITLE>Linux AX25-HOWTO, Amateur Radio.: Programmazione di rete per AX.25, NetRom e Rose.</TITLE> <LINK HREF="AX25-HOWTO-22.html" REL=next> <LINK HREF="AX25-HOWTO-20.html" REL=previous> <LINK HREF="AX25-HOWTO.html#toc21" REL=contents> </HEAD> <BODY> <A HREF="AX25-HOWTO-22.html">Avanti</A> <A HREF="AX25-HOWTO-20.html">Indietro</A> <A HREF="AX25-HOWTO.html#toc21">Indice</A> <HR> <H2><A NAME="s21">21. Programmazione di rete per AX.25, NetRom e Rose.</A></H2> <P>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. <P>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. <P> <H2><A NAME="ss21.1">21.1 Le famiglie degli indirizzi.</A> </H2> <P>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. <P>I nomi delle famiglie degli indirizzi per AX.25, NetRom e Rose sono rispettivamente <CODE>AF_AX25</CODE>, <CODE>AF_NETROM</CODE> e <CODE>AF_ROSE</CODE>. <P> <H2><A NAME="ss21.2">21.2 I file header.</A> </H2> <P>Occorre sempre includere i file header `<CODE>ax25.h</CODE>', nonchè `<CODE>netrom.h</CODE>' o `<CODE>rose.h</CODE>' se avete a che fare con questi protocolli. Le impostazioni iniziali saranno simili alle seguenti: <P>Per AX.25: <BLOCKQUOTE><CODE> <PRE> #include <ax25.h> int s, addrlen = sizeof(struct full_sockaddr_ax25); struct full_sockaddr_ax25 sockaddr; sockaddr.fsa_ax25.sax25_family = AF_AX25 </PRE> </CODE></BLOCKQUOTE> <P>Per NetRom: <BLOCKQUOTE><CODE> <PRE> #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; </PRE> </CODE></BLOCKQUOTE> <P>Per Rose: <BLOCKQUOTE><CODE> <PRE> #include <ax25.h> #include <rose.h> int s, addrlen = sizeof(struct sockaddr_rose); struct sockaddr_rose sockaddr; sockaddr.srose_family = AF_ROSE; </PRE> </CODE></BLOCKQUOTE> <P> <H2><A NAME="ss21.3">21.3 Trattamento dei nominativi ed esempi.</A> </H2> <P>Nella libreria <CODE>lib/ax25.a</CODE> delle AX.25-utilities vi sono routine che effettuano la conversione e il trattamento dei nominativi, anche se naturalmente potete scriverne di vostre. <P>Le utility <EM>user_call</EM> 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. <P>Gli esempi sono semplici a sufficienza da non creare confusione. In caso di dubbi è buona cosa rivolgerli alla mailing list <CODE>linux-hams</CODE>, dove senz'altro ci sarà qualcuno che vi darà una mano. <P> <HR> <A HREF="AX25-HOWTO-22.html">Avanti</A> <A HREF="AX25-HOWTO-20.html">Indietro</A> <A HREF="AX25-HOWTO.html#toc21">Indice</A> </BODY> </HTML>