我有一台服务器在127.0.0.1:8554/nurv上运行提供 RTSP 流媒体视频内容
我现在正在尝试编写一个代理,它将从此位置读取流并通过套接字连接将其传递到另一个应用程序。
当我创建一个侦听127.0.0.1和端口8554的套接字连接时,我没有收到任何输入。(我期待一些传入的 UDP 数据包,其中一些包含“nurv”路径)。我在 netcat 中尝试过同样的方法,它一直在听而没有收到任何输入。然而,当我从 VLC 访问rtsp://127.0.0.1:8554/nurv时,内容就会显示出来——所以它显然就在那里。
我用来尝试接收流的当前 C# 代码如下:
IPEndPoint m_listenEp = new IPEndPoint(IPAddress.Any, 8554);
Socket m_UdpListenSocket = new Socket(m_listenEp.Address.AddressFamily, SocketType.Dgram, ProtocolType.Udp);
m_UdpListenSocket.Bind(m_listenEp);
while (true)
{
if (m_UdpListenSocket.Available > 0)
{
Console.WriteLine("Data available");
...
}
}
在 netcat 中,当我运行nc 127.0.0.1 8554时,它只是一直在听,似乎在等待响应。我没有看到任何输出。我不知道这是否与内容在/nurv路径中提供的事实有关?
这可能是一个非常新手的问题,突出了我对网络理解的一个缺陷,但是为什么在指定位置收听时我看不到任何输入?以及如何在 C# 中读取流,以便可以将不同的套接字连接传递给其他应用程序?