将套接字消息发送到具有相同IP和端口的不同UDP连接

时间:2018-05-04 20:57:01

标签: sockets ip port dji-sdk

操作系统:Ubuntu 16.04

我正在尝试创建一个可以控制多个Ryze Tello无人机的Python程序。这些是非常简单的无人机,可以通过Wi-Fi UDP端口连接计算机并通过文本命令发送来控制。

例如,这是一个简单的程序,在连接到无人机的Wi-Fi网络时,它只会向无人机发送命令“起飞”。

import socket
sock = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
sock.sendto('command', 0, ('192.168.10.1', 8889))
sock.sendto('takeoff', 0, ('192.168.10.1', 8889))

现在,我的目标是能够立即向多个这样的无人机发送命令(例如,让他们执行计划的“舞蹈”例程)。我有多个Wi-Fi加密狗连接到我的计算机,每个加密狗连接到一个单独的无人机。然而,问题是每个无人机都有固定的IP和端口,如上所示。我试图通过SSH连接到无人机来改变其IP,但没有运气,支持热线也不确定是否可以使用Tello。但是,由于在我的计算机上仍然可以清楚地处理连接,因此必须有一种方法可以单独向无人机发送命令。至于如何,我不确定,为什么我要求帮助。

1 个答案:

答案 0 :(得分:0)

为每个无人机创建单独的pip install PodSixNet 对象,其中每个NameError: name 'execfile' is not defined socket,指向无人机所连接的特定WiFi适配器的本地IP。然后,您可以根据需要socket通过每个bind()命令。即使无人机都具有相同的IP和端口,sendto()也可以确保每个命令通过适当的WiFi网络发送到它所针对的正确无人机。

这样的事情:

socket