单独创建 socket 每个无人机的对象,每个 socket 是 bind() '转到无人机所连接的特定WiFi适配器的本地IP。然后你可以 sendto() 通过每个命令 socket 如所须。即使无人机都拥有相同的IP和端口, bind 确保每个命令通过适当的WiFi网络发送到它所针对的正确无人机。
socket
bind()
sendto()
bind
像这样的东西:
import socket sock1 = socket.socket(socket.AF_INET, socket.SOCK_DGRAM) sock1.bind(('WiFi_1_IP', 8889)); sock2 = socket.socket(socket.AF_INET, socket.SOCK_DGRAM) sock2.bind(('WiFi_2_IP', 8889)); sock3 = socket.socket(socket.AF_INET, socket.SOCK_DGRAM) sock3.bind(('WiFi_3_IP', 8889)); ... sock1.sendto('command', 0, ('192.168.10.1', 8889)) sock2.sendto('command', 0, ('192.168.10.1', 8889)) sock3.sendto('command', 0, ('192.168.10.1', 8889)) ... sock1.sendto('takeoff', 0, ('192.168.10.1', 8889)) sock2.sendto('takeoff', 0, ('192.168.10.1', 8889)) sock3.sendto('takeoff', 0, ('192.168.10.1', 8889)) ...