UdpClient构造函数抛出SocketException

时间:2011-06-27 20:50:03

标签: c# sockets

我在构造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客户端的无效参数?

更新:仅当从网络驱动器运行应用程序时才会发生这种情况。在本地运行它不会导致此异常。

2 个答案:

答案 0 :(得分:1)

docs建议您在此实例中检查SocketException::ErrorCode。那是什么价值?应该是有益的。我想,家庭保证金很好,或者你会得到ArgumentException

  

如果收到SocketException,请使用   SocketException ::要获取的ErrorCode   具体的错误代码。一旦你有了   获得此代码,您可以参考   Windows套接字版本2 API   MSDN中的错误代码文档   错误的详细描述。

答案 1 :(得分:0)

0x80004005是拒绝访问,您无权创建套接字,也许是您的防火墙?

或者您的套接字正在使用中,您是否在不终止套接字的情况下终止了该程序?