Pregunta

¿Alguien puede decirme la diferencia entre un INET Socket y cualquier otro socket?

¿Existe una biblioteca de C# que permita trabajar con INET Sockets?

Intenté encontrar qué es, pero no encontré nada muy útil.Sospecho que es algo del mundo UNIX.

¿Fue útil?

Solución

Un socket es solo una abstracción de un punto final de comunicación.La comunicación original entre las entidades puede utilizar diferentes métodos de comunicación.Los sockets INET en Linux son sockets de Internet, es decir, sockets basados ​​en protocolo IP, pero hay muchos otros tipos.Uno con el que tuve que lidiar recientemente son los sockets Netlink que se utilizan como mecanismo IPC entre un proceso de usuario y el kernel de Linux.A diferencia de los sockets INET que usan direcciones IP y puertos, los sockets Netlink usan ID de procesos de Linux para identificar a las partes que se comunican.En cualquier máquina Linux estándar, puede abrir el archivo /usr/include/linux/socket.h y buscar AF_MAX.Es una macro que proporciona la cantidad de familias de protocolos admitidas por la API de socket actual.En mi máquina es 37.

No sé si hay algo llamado INET socket en la API de Windows o no.No he desarrollado mucho para Windows.

Otros consejos

Hay dos dominios de dirección ampliamente utilizados, el dominio Unix, en el que dos procesos que comparten un sistema de archivos común se comunican, y el dominio de Internet, en el que dos procesos que se ejecutan en cualquiera de los dos servidores en Internet se comunican. Cada una de ellas tiene su propio formato de dirección.

La dirección de un socket de dominio Unix es una cadena de caracteres que es básicamente una entrada en el sistema de archivos.

La dirección de un socket en el dominio de Internet se compone de la dirección de Internet de la máquina host (cada ordenador en Internet tiene una dirección de 32 bits única, a menudo referido como su dirección IP).

De: Linux Cómos

Se especifica el tipo de socket durante la instancia del objeto del zócalo:

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

No sé lo que es una toma de INET (lo más parecido que pude encontrar fue ¿Cómo puedo asignar un socket local Unix a una toma de inet ), pero el .NET Framework tiene soporte para sockets en el System.Net.Sockets espacio de nombres, específicamente la clase Socket .

Por lo que yo entiendo, INET se refiere a InterNetwork que significa "Dirección de IP versión 4", en contraposición a InterNetworkV6, acrónimo de "Dirección de IP versión 6". Es similar a pitón donde AF-INET es IPv4, y AF-INET6, que es IPv6.

Me estoy basando en la MSDN AddressFamily enumeración página y documentación de la Python sockets .

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top