我面临着在用DART编写的Android应用程序和Python服务器之间建立连接的挑战.这款安卓应用程序运行在安卓模拟器上.
我成功地使用WebSocket建立了连接,但在使用UDP时遇到了困难.令人惊讶的是,没有错误消息.
下面是应用程序的部分Dart代码:
final serverAddress = InternetAddress('10.0.2.15');
const port = 50001;
_clientSocket = await RawDatagramSocket.bind(InternetAddress.anyIPv4, port);
_clientSocket.send('Hello from Flutter'.codeUnits, serverAddress, port);
_clientSocket.listen((RawSocketEvent event) {
if (event == RawSocketEvent.read) {
Datagram dg = _clientSocket.receive()!;
String message = String.fromCharCodes(dg.data);
print('Received message: $message');
}
});
以下是服务器代码:
import socket
localIP = "127.0.0.1"
print(localIP)
localPort = 50001
bufferSize = 1024
UDPServerSocket = socket.socket(family=socket.AF_INET, type=socket.SOCK_DGRAM)
UDPServerSocket.bind((localIP, localPort))
print("UDP server up and listening")
while True:
bytesAddressPair = UDPServerSocket.recvfrom(bufferSize)
message = bytesAddressPair[0]
address = bytesAddressPair[1]
clientMsg = "Message from Client:{}".format(message)
clientIP = "Client IP Address:{}".format(address)
print(f"{clientMsg}\n{clientIP}\n-----------------\n")
# Sending a reply to the client
replyMsg = f"Hello test agent, thanks for messaging!\n-----------------\n"
UDPServerSocket.sendto(str.encode(replyMsg), address)