Servidor C# que suporta IPv6 e IPv4 na mesma porta
Pergunta
É possível ter um soquete que escuta e aceite clientes IPv6 e IPv4? Eu usei um soquete IPv6 no C# esperando que ele seja automaticamente compatível com versões anteriores, mas os clientes IPv4 causam uma exceção de endereço IP inválido.
Solução
Dar uma olhada aqui. Você pode aceitar clientes IPv4 e clientes IPv6 com o soquete de um servidor.
Outras dicas
Defina o soquete IPv6Only
opção para false
:
Socket MySocket = new Socket(AddressFamily.InterNetworkV6, SocketType.Stream, ProtocolType.Tcp);
MySocket.SetSocketOption(SocketOptionLevel.IPv6, SocketOptionName.IPv6Only, false);
(retirado do segundo link de Matthew Iselin)
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow