Ik begin aan de slag op socket-programmering, en ik blijf dit AF_INET
.
nog, ik heb nog nooit iets anders op zijn plaats gezien. Mijn docenten zijn niet zo behulpzaam en zeggen gewoon: “Je hebt het gewoon nodig”.
Dus mijn vragen:
- Wat is het doel van
AF_INET
? - is iets anders dat ooit in plaats daarvan wordt gebruikt?
- Zo niet, waarom is het daar? Voor mogelijke veranderingen in de toekomst?
- Zo ja, wat en waarom?
Antwoord 1, Autoriteit 100%
AF_INET
is een adresfamilie dat wordt gebruikt om het type adressen aan te wijzen dat uw socket kan communiceren (in dit geval, internetprotocol V4-adressen). Wanneer u een socket maakt, moet u zijn adresfamilie opgeven en vervolgens kunt u alleen adressen van dat type met de socket gebruiken. De Linux-kernel ondersteunt bijvoorbeeld 29 andere adresfamilies zoals Unix (AF_UNIX
) Sockets en IPX (AF_IPX
), en ook communicatie met IRDA en Bluetooth (AF_IRDA
EN AF_BLUETOOTH
, maar het is twijfelachtig, u zult deze op zo’n laag niveau gebruiken).
Voor het grootste deel, vasthouden met AF_INET
voor socket programmering via een netwerk is de veiligste optie. Er is ook AF_INET6
voor internetprotocol V6-adressen.
Ik hoop dat dit helpt,
Antwoord 2, Autoriteit 15%
Het primaire doel van AF_INET was om andere mogelijke netwerkprotocollen of adresfamilies mogelijk te maken (AF is voor adresfamilie; PF_INET is voor de (IPv4) internetprotocolfamilie). Er zijn bijvoorbeeld waarschijnlijk nog een paar Netware SPX/IPX-netwerken; er waren andere netwerksystemen zoals DECNet, StarLAN en SNA, om nog maar te zwijgen van de ongeboren ISO OSI (Open Systems Interconnection), en deze gebruikten niet noodzakelijk het nu alomtegenwoordige IP-adres om de peerhost in netwerkverbindingen te identificeren.
Het alomtegenwoordige alternatief voor AF_INET (dat achteraf gezien AF_INET had moeten heten) is AF_INET6, voor de IPv6-adresfamilie. IPv4 gebruikt 32-bits adressen; IPv6 gebruikt 128-bits adressen.
Mogelijk ziet u enkele andere waarden, maar deze zijn ongebruikelijk. Het is er om alternatieven en toekomstige richtingen mogelijk te maken. De sockets-interface is eigenlijk heel algemeen – en dat is een van de redenen waarom het zo goed gedijt waar andere netwerkinterfaces zijn uitgestorven.
Het leven is (meestal) eenvoudiger geworden – wees dankbaar.
Antwoord 3, autoriteit 5%
Sockets worden gekenmerkt door hun domein, type en transportprotocol. Veelvoorkomende domeinen zijn:
-
AF_UNIX: adresformaat is UNIX-padnaam
-
AF_INET: adresformaat is host- en poortnummer
(er zijn eigenlijk veel andere opties die hier voor gespecialiseerde doeleinden kunnen worden gebruikt). gewoonlijk gebruiken we AF_INET voor socketprogrammering
Referentie: http://www.cs.uic.edu /~troy/fall99/eecs471/sockets.html
Antwoord 4, autoriteit 5%
Je hebt argumenten zoals AF_UNIX of AF_INET nodig om aan te geven welk type socketadressering je zou gebruiken om IPC-socketcommunicatie te implementeren. AF staat voor Adres Familie.
Net als in de BSD-standaard Socket (aangenomen in de Python-socketmodule) worden adressen als volgt weergegeven:
-
Er wordt één string gebruikt voor de AF_UNIX/AF_LOCAL adresfamilie. Deze optie wordt gebruikt voor IPC op lokale machines waar geen IP-adres vereist is.
-
Een paar (host, poort) wordt gebruikt voor de AF_INET-adresfamilie, waarbij host een tekenreeks is die ofwel een hostnaam in internetdomeinnotatie zoals ‘daring.cwi.nl’ of een IPv4-adres zoals ‘100.50. 200.5’, en poort is een geheel getal. Wordt gebruikt om te communiceren tussen processen via internet.
AF_UNIX , AF_INET6 , AF_NETLINK , AF_TIPC , AF_CAN , AF_BLUETOOTH , AF_PACKET , AF_RDSzijn andere opties die kunnen worden gebruikt in plaats van AF_INET.
Deze thread over de verschillen tussen AF_INET en PF_INETkunnen ook nuttig zijn.
Antwoord 5
het definieert de adresfamilie van de protocollen. Dit bepaalt het type socket dat wordt gemaakt.
pocket pc-ondersteuning AF_INET.
de inhoud op de volgende pagina is heel behoorlijk
http://etutorials.org /Programmeren/Pocket+pc+netwerk+programmeren/Hoofdstuk+1.+Winsock/Streaming+TCP+Sockets/
Antwoord 6
“Wat is AF_INET en waarom heb ik het nodig?”
Het betekent het gebruik van het IPv4-protocol. In tegenstelling tot IPv6 of een ander protocol.