Domanda

Qualcuno può dirmi la differenza tra un socket INET e qualsiasi altra presa di corrente?

C'è una libreria C # che permetterà uno a lavorare con INET Sockets?

ho tentato di trovare quello che è, ma non ho trovato nulla di molto utile. Sono sospettare che sia qualcosa dal mondo UNIX.

È stato utile?

Soluzione

Un socket è solo un'astrazione di un punto finale di comunicazione. comunicazione originale tra le entità possono usare metodi diversi per la comunicazione. socket INET in Linux sono Internet Sockets cioè IP prese sulla base del protocollo, ma ci sono molti altri tipi. Uno che recentemente dovuto affrontare sono prese Netlink che sono utilizzati come meccanismo IPC tra un processo utente e kernel Linux. Al contrario di INET prese che utilizzano indirizzi IP e porte, prese Netlink utilizzano processo ID Linux per identificare parti comunicanti. Su qualsiasi macchina Linux standard è possibile aprire il file /usr/include/linux/socket.h e cercare AF_MAX. La sua una macro dando il numero di famiglie di protocolli supportati da corrente api presa. Sulla mia macchina il suo 37.

Non so se c'è qualche presa INET cosa chiamata a API di Windows oppure no. Havent fatto molto di sviluppo per Windows.

Altri suggerimenti

Ci sono due domini ampiamente utilizzato l'indirizzo, il dominio UNIX, nel quale due processi che condividono un file di sistema comune di comunicare, e il dominio Internet, in cui due processi in esecuzione su qualsiasi due host su Internet comunicare. Ognuno di questi ha un proprio formato di indirizzo.

L'indirizzo di un socket nel dominio Unix è una stringa di caratteri che è fondamentalmente una voce nel file system.

L'indirizzo di un socket nel dominio Internet è costituito da l'indirizzo Internet della macchina host (ogni computer su Internet ha un indirizzo a 32 bit univoco, spesso indicato come il suo indirizzo IP).

Da: Linux HOWTO

È possibile specificare il tipo di socket quando un'istanza dell'oggetto Socket:

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

Non so che cosa una presa INET è (cosa più vicina che ho trovato è stato Come faccio a mappare una presa unix locale per una presa inet ), ma il .NET Framework ha il supporto per i socket nel System.Net.Sockets namespace, in particolare il classe Socket .

Per quanto ho capito, INET si riferisce a InterNetwork che sta per "Indirizzo per la versione IP 4" in contrapposizione a InterNetworkV6, che sta per "Indirizzo per IP versione 6". E 'simile a Python dove AF-INET è IPv4, e AF-INET6, che è IPv6.

Confido sul MSDN AddressFamily Enumeration pagina e il Python documentazione prese .

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top