我在构造UdpClient
对象时遇到异常,指定了IPv4系列。这只发生在一台Windows 7 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客户端的无效参数?
更新:仅当从网络驱动器运行应用程序时才会发生这种情况。在本地运行它不会导致此异常。
答案 0 :(得分:1)
docs建议您在此实例中检查SocketException::ErrorCode
。那是什么价值?应该是有益的。我想,家庭保证金很好,或者你会得到ArgumentException
。
如果收到SocketException,请使用 SocketException ::要获取的ErrorCode 具体的错误代码。一旦你有了 获得此代码,您可以参考 Windows套接字版本2 API MSDN中的错误代码文档 错误的详细描述。
答案 1 :(得分:0)
0x80004005是拒绝访问,您无权创建套接字,也许是您的防火墙?
或者您的套接字正在使用中,您是否在不终止套接字的情况下终止了该程序?