Pregunta
Estoy intentando crear un pequeño servidor HTTP en C #, pero estoy teniendo algunos problemas con los clientes IPv6. Tengo el soporte IPv6 en mi máquina, pero cuando trato de crear un socket de escucha se produce un error.
Log("Creating server socket on port {0}", LogType.Info, _port);
_serversocket = new Socket(AddressFamily.InterNetworkV6, SocketType.Stream, ProtocolType.Tcp);
_serversocket.Bind(new IPEndPoint(IPAddress.Any, _port));
_serversocket.Listen(10);
¿Qué estoy haciendo mal aquí?
El código lanza esta excepción: El sistema detectó una dirección de puntero no válido al intentar utilizar un argumento de un puntero en una llamada
EDIT:
Seguimiento de la pila:
a System.Net.Sockets.Socket.DoBind (EndPoint endPointSnapshot, SocketAddress socketAddress) a System.Net.Sockets.Socket.Bind (puntuación final localEP) a TroutServer.Trout.Start (puerto Int32) en C: \ Users \ Chris \ Documents \ Visual Studio 2008 \ Projects \ TroutServer \ trucha \ trout.cs: Línea 62
El tipo es SocketException
Solución
Probar:
new IPEndPoint(IPAddress.IPv6Any, _port)