在DatagramPacket上无法访问网络。通过WIFI连接已连接IP:端口(Android Studio)

(这是我知道的)一个非常基本的问题。我正在尝试创建一个简单的应用程序,该应用程序通过WIFI通过UDP协议从手机向无人机发送消息。 我知道要使用的无人机IP和端口,并且在运行任何测试之前,请确保手机已连接至无人机发出的WIFI。连接到WIFI时,我可以从计算机ping通无人机。这是我得到的:

private Inetsocketaddress drone_address = new Inetsocketaddress("192.168.10.1",8889); // drone address for UDP communication
private Inetsocketaddress local_address = new Inetsocketaddress("",9000); // for socket binding

 public void messageDrone()
    {
        String _message = Orderer.getText().toString();  // value of the text field
        Log.d("UDP_Client","Message to send to drone: " + _message);
        DatagramPacket datagramPacket = new DatagramPacket(
                _message.getBytes(),_message.length(),drone_address // where we send the data to
        );
        try {
            clientsocket.send(datagramPacket);
            Log.d("UDP_Client","Message was successfully sent to drone!");
        } catch (IOException e) {
            e.printStackTrace(); // failed to send message
            Console.setText((e.toString()));
        }
        Orderer.setText(""); // clear text info on submit
    }

并使用以下权限:

<uses-permission android:name = "android.permission.accESS_WIFI_STATE" />
<uses-permission android:name="android.permission.CHANGE_WIFI_STATE"/>
<uses-permission android:name = "android.permission.accESS_NETWORK_STATE" />
<uses-permission android:name = "android.permission.INTERNET"/>

我的客户端套接字是使用顶部提供的local_address正确创建的。无人机地址是100%正确,并且错误是由于

clientsocket.send(datagramPacket);

返回

java.io.IOException: sendto failed: ENETUNREACH (Network is unreachable)

发送的消息是一个简单的字符串“ command”,应该在无人机上“启动SDK模式”,因此允许它执行以下命令。 Orderer和Console只是我的.xml中的textViews。

请帮助!!我敢肯定答案很简单,但是经过数小时的搜索,我还是没有找到答案。

谢谢!

qq290868393 回答:在DatagramPacket上无法访问网络。通过WIFI连接已连接IP:端口(Android Studio)

暂时没有好的解决方案,如果你有好的解决方案,请发邮件至:iooj@foxmail.com
本文链接:https://www.f2er.com/3146449.html

大家都在问