Next: La chiamata bind
Up: Chiamate per la programmazione
Previous: Chiamate per la programmazione
Indice
Indice analitico
int socket(int domain, int type, int protocol)
Come possiamo facilmente osservare la chiamata alla funzione socket
restituisce
un'intero che individua la socket24.1.
Chiameremo tale intero socket descriptor. La chiamata di sistema socket
richiede 3 argomenti:
Argomento: domain
Al fine di implementare I/O dalla rete il sistema effettua la chiamata di
sistema
socket specificando quale protocollo deve essere utilizzato. Le famiglie
di
protocolli che vengono messe a disposizione sono le seguenti:
- AF_UNIX: Protocolli interni di Unix.
- AF_INET: Protocolli ARPA di Internet.
- AF_NS: Protocolli di Xerox Network System.
- AF_ISO: Protocolli della International Standard Association.
Il prefisso AF sta per address family. Occorre sottolineare che esiste
un'altra famiglia di termini con prefisso PF che risultano equivalenti ai
precendenti.
Argomento: type
Come accennato in precedenza un socket può essere di diversi tipi, come secondo
argomento viene quindi accettato uno dei seguenti valori:
- SOCK_STREAM: fornisce una connessione affidabile, sequenziata, a due
vie.(TCP)
- SOCK_DGRAM: Socket di datagramma (connessione non affidabile) (UDP).
- SOCK_RAW: Socket grezzo, per protocolli di rete interna (IP).
- SOCK_SEQUPACKET: Socket di pacchetto in sequenza
- SOCK_RDM: socket di messaggio consegnato in maniera affidabile (non
ancora
implementato).
Argomento: protocol
Quest'intero forza il sistema ad utilizzare un protocollo. In genere viene
uilizzato
il valore 0 in modo tale che sia il sistema a scegliere il protocollo più
adatto.
Detto questo risulta evidente che per creare una socket è sufficiente scrivere
qualcosa del genere:
int sd;
sd = socket(AF_INET, SOCK_STREAM, 0);
Next: La chiamata bind
Up: Chiamate per la programmazione
Previous: Chiamate per la programmazione
Indice
Indice analitico
blacksheep &
2006-11-22