什么会导致UDP套接字上的ConnectionReset?

ple*_*set 1 c# sockets rtp rtsp

我正在尝试使用Managed Media Aggregation C#库(http://net7mma.codeplex.com)来处理来自Freebox机顶盒的RTSP/RTP流.

虽然lib可以正常使用示例RTSP提要,但是当使用来自我的机顶盒的提要时,RTP侦听器套接字(一个简单的UDP套接字侦听特定端口上的每个收入)会抛出SocketException:ConnectionReset,当然没有数据接收时显示(数据显示在Wireshark中).

通过SocketIO招抑制E_CONNRESET没有多少,仍然没有数据插座到来.

会导致这种行为的原因是什么?

(如果需要,我可以提供源代码或Wireshark跟踪)

Aub*_*bin 6

Microsoft解释了SIO_UDP_CONNRESET的真正含义:

SIO_UDP_CONNRESET(操作码设置:I,T == 3)

Windows XP:  Controls whether UDP PORT_UNREACHABLE messages are reported.
- Set to TRUE to enable reporting.
- Set to FALSE to disable reporting.
Run Code Online (Sandbox Code Playgroud)

问题实际上不是连接重置而是可达性.

MSDN解释错误WSAECONNRESET:

WSAECONNRESET

虚拟电路由远程端执行硬关闭或中止关闭重置.应用程序应关闭套接字; 它不再可用.在UDP数据报套接字上,此错误表示先前的发送操作导致ICMP端口无法访问消息.