Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/313.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/sockets/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 插座;提供了无效的参数";_C#_Sockets - Fatal编程技术网

C# 插座;提供了无效的参数";

C# 插座;提供了无效的参数";,c#,sockets,C#,Sockets,我使用套接字将应用程序中的UDP数据包发送到固定的IP地址和端口。socket被实例化为socket socket=newsocket(AddressFamily.InterNetwork,SocketType.Dgram,ProtocolType.Udp),我在整个应用程序生命周期中都会保留这个实例。每个UDP数据包都是使用Socket.Send(字节[]缓冲区)传输的。 该应用程序已运行数周,突然发送throwsSocketException,并显示提供了无效参数的消息。重新启动应用程序有效

我使用套接字将应用程序中的UDP数据包发送到固定的IP地址和端口。socket被实例化为
socket socket=newsocket(AddressFamily.InterNetwork,SocketType.Dgram,ProtocolType.Udp)
,我在整个应用程序生命周期中都会保留这个实例。每个UDP数据包都是使用Socket.Send(字节[]缓冲区)传输的。


该应用程序已运行数周,突然发送throws
SocketException
,并显示提供了无效参数的消息。重新启动应用程序有效地解决了问题,但我想知道是否有人知道这是什么原因,以及我是否可以遵循任何恢复策略。

如果您断开连接,最好重新创建套接字对象。

您必须更仔细地查看本机错误代码
SocketException
supplies。在相应的Windows SDK头文件中查找它们。它们的信息量远远大于消息。好吧,我复制了一个场景,但有一个例外。如果我传输UDP数据包,并切断计算机的网络连接,则此后每次发送都会发生SocketException(10055),然后发生SocketException(10022)。如果断开连接,则可能需要重新创建socket对象。实际上,这似乎可以解决网络中断问题。如果套接字未连接,我将关闭它并重新创建它,然后重新连接。如果我插入网络,它将再次开始提交。@PeterRitchie:发布一个带有你评论的答案,我将把它标记为最终答案