我已经使用GStreamer为实时流创建了客户端和服务器应用程序。如何知道已到达或未能到达目的地的网络数据包状态?
答案 0 :(得分:0)
您通常无法知道包裹是否已到达目的地。
e.g。使用UDP时(如udpsrc
& udpsink
),有 - 按设计 - 无法知道包是否到达目的地。
otoh,当使用TCP / IP时(如在tcpclientsink
& tcpserversrc
中),协议栈将保证每个包的传送,除非连接断开。在这种情况下,您的一方将收到EOS的通知。
答案 1 :(得分:0)
即使在tcp反馈的情况下也不是实时的。我的意思是服务器上成功的发送API并不意味着该数据包已经到达客户端。它可能仍然停留在其中一个拥塞窗口中,但最终会到达客户端!
如果您通过错误的网络连接在TCP流上连接到RTSP / RTP,则可以非常明显地看到此效果。
像可靠的UDP这样的概念在这里可以提供一些帮助。