Zaczynam od programowania gniazd i ciągle to widzę AF_INET
.
Jednak nigdy nie widziałem niczego innego używanego zamiast tego. Moi wykładowcy nie są aż tak pomocni i po prostu mówią „Po prostu potrzebujesz”.
Więc moje pytania:
- Jaki jest cel
AF_INET
? - Czy zamiast tego użyto czegoś jeszcze?
- Jeśli nie, to dlaczego? Dla możliwych zmian w przyszłości?
- Jeśli tak, co i dlaczego?
Potrzebujesz argumentów takich jak AF_UNIX lub AF_INET, aby określić, jakiego rodzaju adresowania gniazd użyjesz do wdrożenia komunikacji gniazd IPC. AF oznacza rodzinę adresów.
Podobnie jak w przypadku standardowego gniazda Socket (przyjętego w module gniazda Python), są one reprezentowane w następujący sposób:
Pojedynczy ciąg znaków jest używany dla rodziny adresów AF_UNIX / AF_LOCAL. Ta opcja jest używana w przypadku IPC na komputerach lokalnych, gdzie nie jest wymagany adres IP.
Para (host, port) jest używana dla rodziny adresów AF_INET, gdzie host jest łańcuchem reprezentującym nazwę hosta w notacji domeny internetowej, np. „Daring.cwi.nl” lub adres IPv4, np. „100.50.200.5”, a port to Liczba całkowita. Służy do komunikacji między procesami przez Internet.
AF_UNIX, AF_INET6, AF_NETLINK, AF_TIPC, AF_CAN, AF_BLUETOOTH, AF_PACKET, AF_RDS to inne opcje, których można użyć zamiast AF_INET .
Ten wątek na temat różnic między AF_INET i PF_INET może być również przydatny.
źródło
Gniazda charakteryzują się domeną, rodzajem i protokołem transportowym. Typowe domeny to:
AF_UNIX: format adresu to nazwa ścieżki UNIX
AF_INET: format adresu to host i numer portu
(w rzeczywistości istnieje wiele innych opcji, których można tu użyć do specjalnych celów). zwykle używamy AF_INET do programowania gniazd
Odniesienie: http://www.cs.uic.edu/~troy/fall99/eecs471/sockets.html
źródło
definiuje rodzinę adresów protokołów. określa typ tworzonego gniazda. obsługa komputera kieszonkowego AF_INET.
treść na następnej stronie jest całkiem przyzwoita http://etutorials.org/Programming/Pocket+pc+network+programming/Chapter+1.+Winsock/Streaming+TCP+Sockets/
źródło