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

¿Fue útil?

Solución

Probar:

new IPEndPoint(IPAddress.IPv6Any, _port)
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top