288 votes

Qu'est-ce que AF_INET et pourquoi en ai-je besoin?

Donc je suis mise en route de programmation socket, et je continue à voir cette `` . Pourtant, je n’ai jamais vu quoi que ce soit utilisée, l’autre à sa place. Mes professeurs ne sont pas utiles et il suffit de dire « Vous avez juste besoin ». Donc mes questions :

  • Quel est le but de `` ?
  • Autre chose est déjà utilisé au lieu de lui ?- Sinon, pourquoi est-ce là ? Pour les changements possibles à l’avenir ?
  • Si oui, que se passe-t-il et pourquoi ?

395voto

George Shore Points 491

AF_INET est l'adresse de la famille qui est utilisé pour le support que vous êtes en train de créer (dans ce cas, l'adresse de Protocole Internet). Le noyau Linux, par exemple, prend en charge 29 autre adresse les familles comme les sockets UNIX et IPX, et aussi les communications avec l'IRDA et Bluetooth (AF_IRDA et AF_BLUETOOTH, mais il est douteux que vous allez les utiliser à un niveau tellement bas).

Pour la plus grande partie de la respecter AF_INET pour la programmation socket sur un réseau est l'option la plus sûre.

Espérons que cela aide,

54voto

Jonathan Leffler Points 299946

Le but principal de AF_INET, était de permettre à d'autres protocoles de réseau ou l'adresse les familles (AF est pour l'adresse de la famille; PF_INET est pour l' (IPv4) le protocole internet de la famille). Par exemple, il y a probablement un peu de Netware IPX/SPX réseaux autour de encore; il y avait d'autres systèmes de réseau comme DECNet, StarLAN et de la SNA, pour ne pas mentionner le mal engendré ISO OSI (Open Systems Interconnection), et ceux-ci n'ont pas nécessairement utiliser la désormais omniprésente adresse IP pour identifier les pairs de l'hôte dans les connexions réseau.

L'omniprésent alternative à AF_INET (qui, rétrospectivement, aurait été nommé AF_INET4) est AF_INET6, pour l'adresse IPv6 de la famille. IPv4 utilise 32 bits adresses IPv6 utilise des adresses à 128 bits.

Vous pouvez voir quelques autres valeurs - mais ils sont rares. Il est là pour permettre des solutions de rechange et les orientations futures. L'interface sockets est en fait très général, en effet, qui est l'une des raisons pour lesquelles il a réussi là où d'autres interfaces réseau ont flétri.

La vie est (presque) devenu de plus simple en être reconnaissants.

20voto

Asish P Mathew Points 21

Douille se caractérisent par leur protocole de domaine, de type et de transport. Les domaines communs sont :

  1. AF_UNIX : format des adresses est le chemin d’accès UNIX
  2. AF_INET : format des adresses est hôte et le port demandés

(il y a effectivement beaucoup d’autres options qui peut être utilisé ici à des fins spécialisés) se nous utilisons AF_INET pour programmation de socket

15voto

Avi Mehenwal Points 148

Vous avez besoin d'arguments comme AF_UNIX ou AF_INET pour spécifier le type de prise d'adressage de vous utiliser pour mettre en œuvre la CIB communication par socket. AF représente l'Adresse de la Famille.

Comme dans BSD Douille standard (adoptée en Python module d'embase) les adresses sont représentées comme suit:

  1. Une seule chaîne est utilisée pour le AF_UNIX/AF_LOCAL adresse de la famille. Cette option est utilisée pour l'IPC sur des machines locales où aucune adresse IP n'est requis.

  2. Une paire (host, port) est utilisé pour le AF_INET adresse de la famille, où l'hôte est une chaîne de caractères représentant soit un nom d'hôte dans le domaine de l'Internet notation comme "daring.cwi.nl" ou une adresse IPv4 comme "100.50.200.5', et le port est un entier. Utilisé pour communiquer entre processus sur internet.

AF_UNIX , AF_INET6 , AF_NETLINK , AF_TIPC , AF_CAN , AF_BLUETOOTH , AF_PACKET , AF_RDS sont une autre option qui pourrait être utilisé à la place de AF_INET.

Ce thread sur les différences entre les AF_INET et PF_INET pourrait également être utile.

2voto

monsterchandan Points 1

Il définit les protocoles adresse family.this détermine le type de socket créée. support de pc de poche AF_INET.

le contenu de la page suivante est tout à fait décent http://etutorials.org/Programming/Pocket+pc+network+programming/Chapter+1.+Winsock/Streaming+TCP+Sockets/

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X