Вопрос

Может ли кто-нибудь сказать мне разницу между сокетом INET и любым другим сокетом?

Существует ли библиотека С#, которая позволит работать с сокетами INET?

Я пытался найти, что это такое, но не нашел ничего полезного.Я подозреваю, что это что-то из мира UNIX.

Это было полезно?

Решение

Сокет — это просто абстракция конечной точки связи.Исходная связь между объектами может использовать разные методы связи.Сокеты INET в Linux — это интернет-сокеты, то есть сокеты на основе протокола IP, но существует много других типов.Недавно мне пришлось иметь дело с сокетами Netlink, которые используются в качестве механизма IPC между пользовательским процессом и ядром Linux.В отличие от сокетов INET, которые используют IP-адреса и порты, сокеты Netlink используют идентификаторы процессов Linux для идентификации взаимодействующих сторон.На любой стандартной машине Linux вы можете открыть файл /usr/include/linux/socket.h и найти AF_MAX.Это макрос, указывающий количество семейств протоколов, поддерживаемых текущим API сокета.На моей машине 37.

Я не знаю, есть ли в Windows API что-то, называемое сокетом INET, или нет.Я не делал много разработок для Windows.

Другие советы

Существует два широко используемых домена адресов: домен unix, в котором взаимодействуют два процесса, использующих общую файловую систему, и домен Интернета, в котором взаимодействуют два процесса, запущенные на любых двух хостах в Интернете.Каждый из них имеет свой собственный формат адреса.

Адрес сокета в домене Unix представляет собой строку символов, которая по сути является записью в файловой системе.

Адрес сокета в Интернет-домене состоит из Интернет-адреса хост-машины (каждый компьютер в Интернете имеет уникальный 32-битный адрес, часто называемый IP-адресом).

От:Linux Howtos

Вы указываете тип Socket при создании экземпляра объекта Socket:

var socket = new Socket(AddressFamily.InterNetwork, SocketType.Stream,  ProtocolType.Tcp);

Я не знаю, что такое сокет INET (самое близкое, что я смог найти, это Как я могу сопоставить локальный сокет Unix с сокетом Inet?), но .NET Framework поддерживает сокеты в System.Net.Sockets пространство имен, в частности Разъем сорт.

Насколько я понимаю, INET относится к InterNetwork, что означает «Адрес для IP версии 4», в отличие от InterNetworkV6, что означает «Адрес для IP версии 6».Это похоже на Python, где AF-INET это IPv4, и AF-INET6, то есть IPv6.

Я полагаюсь на Перечисление MSDN AddressFamily страница и Документация по сокетам Python.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top