2

我正在尝试在 C# 中创建一个小型 HTTP 服务器,但在使用 IPv6 客户端时遇到了一些问题。我的机器上有 IPv6 支持,但是当我尝试创建监听套接字时它失败了。

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);

我在这里做错了什么?

代码抛出此异常:系统在尝试在调用中使用指针参数时检测到无效的指针地址

编辑:

堆栈跟踪:

在 System.Net.Sockets.Socket.DoBind(EndPoint endPointSnapshot, SocketAddress socketAddress) 在 System.Net.Sockets.Socket.Bind(EndPoint localEP) 在 TroutServer.Trout.Start(Int32 端口) 在 C:\Users\Chris\Documents \Visual Studio 2008\Projects\TroutServer\trout\trout.cs:第 62 行

类型是 SocketException

4

1 回答 1

6

尝试:

new IPEndPoint(IPAddress.IPv6Any, _port)
于 2009-08-17T02:31:56.473 回答