以下是一个示例代码,演示了如何在Android设备和Python脚本之间进行UDP通信:
在Android设备上的代码(Java):
// 引入所需的库
import java.io.IOException;
import java.net.DatagramPacket;
import java.net.DatagramSocket;
import java.net.InetAddress;
import java.net.SocketException;
public class UdpClient {
private DatagramSocket socket;
private InetAddress address;
public UdpClient() throws SocketException, UnknownHostException {
// 创建UDP套接字
socket = new DatagramSocket();
address = InetAddress.getByName("YOUR_PYTHON_SERVER_IP_ADDRESS");
}
public void sendMessage(String message) throws IOException {
// 将消息转换为字节数组
byte[] buffer = message.getBytes();
// 创建UDP数据包并发送给服务器
DatagramPacket packet = new DatagramPacket(buffer, buffer.length, address, 1234);
socket.send(packet);
}
public void close() {
socket.close();
}
}
在Python脚本中的代码:
import socket
# 创建UDP套接字
sock = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
sock.bind(("YOUR_PYTHON_SERVER_IP_ADDRESS", 1234))
while True:
# 接收来自Android设备的UDP数据包
data, addr = sock.recvfrom(1024)
print("Received message:", data.decode())
# 回复消息给Android设备
message = "Hello from Python!"
sock.sendto(message.encode(), addr)
以上示例中,Android设备上的UdpClient
类可以用于发送消息到Python服务器。示例中的Python脚本创建了一个UDP套接字,并通过绑定到指定的IP地址和端口号来监听来自Android设备的消息。当接收到消息后,Python脚本会回复一个消息给Android设备。
请注意,您需要将YOUR_PYTHON_SERVER_IP_ADDRESS
替换为运行Python脚本的计算机的IP地址。另外,确保在防火墙上打开了所使用的端口号。