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
La solution
Essayez:
new IPEndPoint(IPAddress.IPv6Any, _port)