我一直在尝试通过UDP发送一些数据并获取一些数据,以回应我猜一个具有已知IP和端口的Arduino,但是我一直收到此错误:
SocketException: Failed to create datagram socket (OS Error: Cannot assign requested address, errno = 99), address = 192.168.0.1, port = 4210
这是我的代码
InternetAddress ipAddress = InternetAddress(ip, type: InternetAddressType.IPv4);
RawDatagramSocket.bind(ip, port).then((soc) {
socket = soc;
udpTimer = Timer.periodic(Duration(milliseconds: 10), (timer) async {
socket.send(data, ipAddress, port);
});
socket.listen((RawSocketEvent event) async {
Datagram datagram = socket.receive();
if (datagram != null) {
setBattery(String.fromCharCodes(datagram.data));
}
});
}).catchError((error) async {
// shows error to user
});
我还在清单中授予了这些权限:
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
我已经在本地主机上的笔记本电脑上测试了该代码,并且该代码可以正常工作。
有一个实现了此功能并且运行良好的android应用程序,所以我想Arduino方面没有问题。