以编程方式配置多个NIC

时间:2012-07-25 16:36:53

标签: c# .net networking

我是一名工程专业的学生正在进行多个Ar无人机(简单的四旋翼无人机)的自主视觉导航项目。

我在PC上连接了两张WiFi卡。 Ar无人机都制作了自己的WiFi服务器。我同时将两个NIC中的每一个连接到它们(AR无人机)。两架无人机都使用UDP端口传输视频流。

我的问题是:

  1. 我可以同时收到两个视频流吗?

  2. 如果是,那么如何配置我的C#应用​​程序以接收这两个视频流并显示它们?

  3. 我已经可以从一个无人机接收视频流了。如何重新配置​​该代码以接收两个视频流?

2 个答案:

答案 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初始化。