Pergunta

Alguém pode me dizer a diferença entre um soquete INET e qualquer outro soquete?

Existe uma biblioteca C # que permitirá trabalhar com INET Sockets?

Tentei descobrir o que é, mas não encontrei nada muito útil.Suspeito que seja algo do mundo UNIX.

Foi útil?

Solução

Um soquete é apenas uma abstração de um ponto final de comunicação.A comunicação original entre as entidades pode utilizar diferentes métodos de comunicação.Os soquetes INET no Linux são soquetes de Internet, ou seja, soquetes baseados em protocolo IP, mas existem muitos outros tipos.Um com o qual tive que lidar recentemente são os soquetes Netlink, que são usados ​​como mecanismo IPC entre um processo de usuário e o kernel do Linux.Ao contrário dos soquetes INET que usam endereços IP e portas, os soquetes Netlink usam IDs de processos Linux para identificar as partes em comunicação.Em qualquer máquina Linux padrão você pode abrir o arquivo /usr/include/linux/socket.h e procurar AF_MAX.É uma macro que fornece o número de famílias de protocolos suportadas pela API de soquete atual.Na minha máquina é 37.

Não sei se existe algo chamado soquete INET na API do Windows ou não.Não fiz muito desenvolvimento para Windows.

Outras dicas

Existem dois domínios de endereço amplamente utilizados, o domínio UNIX, no qual dois processos que compartilham um sistema de arquivos comuns se comunicam e o domínio da Internet, no qual dois processos em execução em dois hosts na Internet se comunicam. Cada um deles tem seu próprio formato de endereço.

O endereço de um soquete no domínio UNIX é uma sequência de caracteres que é basicamente uma entrada no sistema de arquivos.

O endereço de um soquete no domínio da Internet consiste no endereço da Internet da máquina host (todo computador na Internet tem um endereço de 32 bits exclusivo, geralmente chamado de endereço IP).

A partir de:Linux Howtos

Você especifica o tipo de soquete ao instantar o objeto de soquete:

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

Não sei o que é um soquete INET (coisa mais próxima que pude encontrar foi Como posso mapear um soquete Unix local para um soquete INET?), mas a estrutura .NET tem suporte para soquetes no System.net.sockets espaço para nome, especificamente o Soquete classe.

Tanto quanto eu entendo, INET Refere -se à Internetwork, que significa "Endereço para a versão IP 4", em oposição ao InternetWorkv6, que significa "Endereço para a versão IP 6". É semelhante ao python onde AF-INET é IPv4 e AF-INET6, que é IPv6.

Estou confiando no Enumeração do endereço MSDN página e o Documentação de soquetes Python.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top