Question

Je suis en train de créer un petit serveur HTTP en C #, mais je vais avoir des problèmes avec les clients IPv6. J'ai prise en charge IPv6 sur ma machine, mais lorsque je tente de créer une socket d'écoute échoue.

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'est-ce que je fais mal ici?

Le code génère cette exception: Le système a détecté une adresse de pointeur non valide en essayant d'utiliser un argument pointeur dans un appel

EDIT:

Trace de la pile:

  

à System.Net.Sockets.Socket.DoBind (EndPoint   endPointSnapshot, SocketAddress   SocketAddress) à   System.Net.Sockets.Socket.Bind (EndPoint   localEP) à   TroutServer.Trout.Start (port Int32) dans   C: \ Users \ Chris \ Documents \ Visual Studio   2008 \ Projects \ TroutServer \ truite \ trout.cs: ligne   62

Le type est SocketException

Était-ce utile?

La solution

Essayez:

new IPEndPoint(IPAddress.IPv6Any, _port)
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top