我是一名工程专业的学生正在进行多个Ar无人机(简单的四旋翼无人机)的自主视觉导航项目。
我在PC上连接了两张WiFi卡。 Ar无人机都制作了自己的WiFi服务器。我同时将两个NIC中的每一个连接到它们(AR无人机)。两架无人机都使用UDP端口传输视频流。
我的问题是:
我可以同时收到两个视频流吗?
如果是,那么如何配置我的C#应用程序以接收这两个视频流并显示它们?
我已经可以从一个无人机接收视频流了。如何重新配置该代码以接收两个视频流?
答案 0 :(得分:0)
您需要两个套接字,并希望每个套接字bind()
到相应网络接口的地址。
答案 1 :(得分:0)
您不需要2张WiFi卡。
基本上,您的客户端应用程序需要创建2个套接字。每个人都可以收听不同的端口(例如:5000和5001)。然后,您必须将此信息传达给您的无人机。可能是通过TCP将客户端应用程序连接到无人机并为每个无人机发送配置。第一个无人机将接收端口5000,第二个将接收端口5001。
然后,无人机必须将UDP中的数据传输到客户端计算机的IP地址和配置中的指定端口。
修改强> 我检查了库,我看到一个用于发送UDP数据的UdpWorker类。调用此类的构造函数时,必须提供远程IP地址(客户端应用程序的地址)和端口号。
假设您的客户端具有IP 192.168.1.1,则Drone#1将使用remoteIpAddress = 192.168.1.1和port = 5000初始化UdpWorker对象。对于Drone#2,将使用remoteIpAddress = 192.168.1.1和port = 5001初始化UdpWorker对象。
您的客户端应用程序将从不同的套接字接收两个流,因为两个套接字都绑定到不同的端口,因此很容易区分哪个是哪个。在C#应用程序中,您可以实例化System.Net.Sockets.UdpClient类型的2个对象。第一个用端口号5000初始化,第二个用端口号5001初始化。