我是一名工程专业的学生,从事基于自主视觉的多无人机(简单四旋翼无人机)导航的研究。
我在我的电脑上连接了两张WiFi卡。这两架Ar无人机都有自己的WiFi服务器。我将两个NIC中的每一个同时连接到它们(AR无人机)。两架无人机都在使用UDP端口传输视频流。
我的问题是:
我已经可以从一架无人机接收视频流了。如何重新配置该代码以接收两个视频流?
发布于 2012-07-25 16:44:07
您需要两个套接字,并且希望将每个套接字bind()到相应网络接口的地址。
发布于 2012-07-25 16:51:36
你不需要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的对象。第一个端口号为5000,第二个端口号为5001。
https://stackoverflow.com/questions/11654513
复制相似问题