UdpClient构造函数引发SocketException
本文关键字:SocketException 构造函数 UdpClient | 更新日期: 2023-09-27 18:00:36
在构造指定IPv4系列的UdpClient
对象时遇到异常。这种情况只发生在一台Windows7 64位计算机上,其他具有相同操作系统的计算机运行良好。
确切的例外是:
System.Net.Sockets.SocketException (0x80004005): An invalid argument was supplied
at System.Net.Sockets.Socket..ctor(AddressFamily addressFamily, SocketType socketType, ProtocolType protocolType)
at System.Net.Sockets.UdpClient.createClientSocket()
SocketException.ErrorCode
是WSAEINVAL 10022,InvalidArgument。
引发此异常的代码:
this.udpClient = new UdpClient(AddressFamily.InterNetwork);
有人能解释一下这个例外告诉我什么吗?IPv4怎么可能是新UDP客户端的无效参数?
更新:只有在从网络驱动器运行应用程序时才会发生这种情况。在本地运行它不会导致此异常。
文档建议您在这种情况下检查SocketException::ErrorCode
。这有什么价值?应该很有启发性。我认为Family参数很好,否则您会得到ArgumentException
。
如果收到SocketException,请使用SocketException::要获取的ErrorCode特定的错误代码。一旦你获得此代码后,可以参考Windows套接字版本2 APIMSDN中的错误代码文档错误的详细描述。
0x80004005是拒绝访问,您没有创建套接字的权限,也许是您的防火墙?
或者你的套接字正在使用中,你是否在没有终止套接字的情况下终止了程序?