簡體   English   中英

在android上設置udp連接

[英]Setting up a udp connection on android

我正在嘗試在 android studio(使用 java)上建立一個簡單的 udp 連接。 我創建了一個新的單獨線程來建立和偵聽連接,但我不斷收到權限被拒絕的錯誤:

在此處輸入圖片說明

這是我用於連接的代碼:

public class ClientListen implements Runnable{

    @Override
    public void run() {
        try {
            DatagramSocket udpsocket = new DatagramSocket(14552, InetAddress.getByName("localhost"));
            byte[] buffer = new byte[16];
            DatagramPacket packet = new DatagramPacket(buffer, buffer.length, InetAddress.getByName("localhost"), 14552);
            udpsocket.send(packet);
        } catch (SocketException e) {
            Log.e("UDP: ", "Socket Error: ", e);
        } catch (IOException e) {
            Log.e("UDP Send: ", "IO Error", e);
        }

        boolean run = true;

        while (run) {
            try {
                DatagramSocket udpSocket = new DatagramSocket(14552, InetAddress.getByName("localhost"));
                byte[] message = new byte[1500];
                DatagramPacket packet = new DatagramPacket(message, message.length);
                Log.i("UDP Client: ", "about to wait to receive");
                udpSocket.receive(packet);
                String text = new String(message, 0, packet.getLength());
                Log.d("Recieved data ", text);
            } catch (IOException e) {
                Log.e("UDP Client ", "has IO Exception, error: ", e);
                run = false;
            }
        }
    }
}

然后我將它作為一個新線程鏈接到主活動文件中:

public class MainActivity extends AppCompatActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        new Thread(new ClientListen()).start();
    }
}

我從來沒有在 android 上設置過 udp 端口​​,所以我真的很困惑如何解決這個錯誤,因為我無法在管理員或任何東西中運行它。 這是我的代碼錯誤嗎? 還是我嘗試連接的端口有問題?

是否在清單中添加了所有相關的網絡權限?

嘗試添加這個

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM