cari
RumahJavajavaTutorialTerima Siaran UDP daripada PC pada Android

Artikel ini melaksanakan cara menerima siaran UDP daripada PC pada telefon mudah alih anda.
Mari kita selesaikan dahulu pelaksanaan kod di bahagian PC., yang sangat mudah.

private final ScheduledExecutorService askService= Executors.newSingleThreadScheduledExecutor();
public void runWaitConnectThead(){
        askService.scheduleAtFixedRate(this::sendAskMessage, 0, boardCastConfig.getWAIT_MS(), TimeUnit.MILLISECONDS);
    }
protected void sendAskMessage(){
        byte[] message = this.hostName.getBytes();
        try (DatagramSocket datagramSocket = new DatagramSocket()) {
            datagramSocket.setBroadcast(true);
            InetAddress boardcastAddr = InetAddress.getByName("255.255.255.255");
            DatagramPacket datagramPacket = new DatagramPacket(message, message.length, boardcastAddr, 1885);
            datagramSocket.send(datagramPacket);
        } catch (IOException e) {
            System.out.println("Error: " + e.getMessage());
        }
    }

Dalam blok kod kedua di atas, askService akan bermula serta-merta(param kedua) dan akan terus melaksanakan fungsi "sendAskMessage()", yang memancarkan paket UDP, setiap milisaat boardCastConfig.getWAIT_MS(). Dalam kod saya, ia berulang setiap 5s.

Kini, anda telah mencapai kejayaan 50%.
Sebelum menulis kod penerimaan kami, kami perlu menambahkan beberapa kebenaran dalam fail AndroidMnifest.xml atau aplikasi anda tidak akan dapat dijalankan.
Berikut adalah kebenarannya:

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

Kemudian mari kita cipta perkhidmatan dalam MainActivity, dan laksanakan kod penerimaan kita di dalamnya. Ngomong-ngomong, jangan lupa menambahkan perkhidmatan ini dalam fail AndroidManifest.xml.

public class MainActivity extends AppCompatActivity {
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        Intent waitBoardCastService=new Intent(this, WaitBoardCastService.class);
        startService(waitBoardCastService);
    }
}
<service android:name=".on_wait.WaitBoardCastService"></service>

Kemudian kita boleh menyelesaikan kod penerimaan kita. Ia mengandungi dua bahagian.
①buat benang baharu(saya tidak menunjukkannya dalam kod saya, tetapi itu sangat penting, anda tidak boleh memulakan aplikasi anda jika anda meninggalkan operasi rangkaian dalam utas utama)
②mendapatkan kunci multicast(langkah ini amat penting, tanpa ini, anda tidak boleh menerima paket UDP)
③menerima paket UDP

WifiManager wifi =(WifiManager)getSystemService(MyApplication.WIFI_SERVICE);
WifiManager.MulticastLock lock = wifi.createMulticastLock("any_tag");
lock.acquire();
try {
    DatagramSocket socket = new DatagramSocket(1885);
    byte[] receiveData = new byte[1024];
    DatagramPacket receivePacket = new DatagramPacket(receiveData, 
    receiveData.length);
    Log.v("hello","waiting");
    socket.receive(receivePacket);
    String receiveMessage = new String(receivePacket.getData(), 0,receivePacket.getLength());
    Log.v("hello","received!");
    socket.close();
} catch (IOException e) {
    Toast.makeText(MyApplication.getContext(), "NetWork Error",Toast.LENGTH_LONG).show();
} finally {
    lock.release();
}

Hasil saya:

Receive UDP Broadcast from PC on Android

Atas ialah kandungan terperinci Terima Siaran UDP daripada PC pada Android. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Apakah sebabnya integral ganda ∫∫ydσ = 0 dalam koordinat kutub?Apakah sebabnya integral ganda ∫∫ydσ = 0 dalam koordinat kutub?Apr 19, 2025 pm 05:03 PM

Menyelesaikan integral ganda di bawah sistem koordinat Polar Artikel ini akan menjawab soalan mengenai integral berganda di bawah koordinat polar secara terperinci. Persoalannya memberikan kawasan titik dan diperbadankan ...

Bagaimana untuk memastikan keunikan tugas skrip keluar di bawah kesesuaian yang tinggi dan memantau status operasi mereka dalam masa nyata?Bagaimana untuk memastikan keunikan tugas skrip keluar di bawah kesesuaian yang tinggi dan memantau status operasi mereka dalam masa nyata?Apr 19, 2025 pm 05:00 PM

Bagaimana untuk memastikan keunikan tugas skrip dan memantau status operasi mereka dalam persekitaran konvensional yang tinggi? Artikel ini akan meneroka cara memastikan kaki keluar dalam persekitaran kluster ...

Bagaimanakah subkelas menetapkan sifat peribadi dengan mewarisi kaedah setname kelas induk?Bagaimanakah subkelas menetapkan sifat peribadi dengan mewarisi kaedah setname kelas induk?Apr 19, 2025 pm 04:57 PM

Mengenai bagaimana subkelas menetapkan sifat peribadi dengan mewarisi kaedah setname kelas induk. Dalam pengaturcaraan, terutamanya dalam bahasa pengaturcaraan berorientasikan objek seperti Java, subclass dan ...

Bagaimana menyelesaikan masalah kegagalan pengesahan nama pengguna dan kata laluan ketika menyambung ke EMQX tempatan menggunakan Eclipse Paho?Bagaimana menyelesaikan masalah kegagalan pengesahan nama pengguna dan kata laluan ketika menyambung ke EMQX tempatan menggunakan Eclipse Paho?Apr 19, 2025 pm 04:54 PM

Bagaimana untuk menyelesaikan masalah kegagalan pengesahan nama pengguna dan kata laluan ketika menyambung ke EMQX tempatan menggunakan MQTTasyncClient Eclipsepaho? Menggunakan Java dan Eclipse ...

Adakah perisian keselamatan syarikat menyebabkan aplikasi gagal dijalankan? Bagaimana cara menyelesaikan masalah dan menyelesaikannya?Adakah perisian keselamatan syarikat menyebabkan aplikasi gagal dijalankan? Bagaimana cara menyelesaikan masalah dan menyelesaikannya?Apr 19, 2025 pm 04:51 PM

Penyelesaian masalah dan penyelesaian kepada perisian keselamatan syarikat yang menyebabkan beberapa aplikasi tidak berfungsi dengan baik. Banyak syarikat akan menggunakan perisian keselamatan untuk memastikan keselamatan rangkaian dalaman. …

Bagaimana cara menjana dan memaparkan applet WeChat dengan betul dengan kod QR parameter di Java?Bagaimana cara menjana dan memaparkan applet WeChat dengan betul dengan kod QR parameter di Java?Apr 19, 2025 pm 04:48 PM

Menjana kod QR Applet WeChat dengan parameter di Java dan memaparkannya pada halaman HTML adalah keperluan umum. Artikel ini akan membincangkan secara terperinci cara menggunakan ...

Bagaimana untuk mencapai penyegerakan negeri dalam panggilan pelbagai antara muka Java: Kesan mendengar antara muka A pada antara muka B?Bagaimana untuk mencapai penyegerakan negeri dalam panggilan pelbagai antara muka Java: Kesan mendengar antara muka A pada antara muka B?Apr 19, 2025 pm 04:45 PM

Penyegerakan negeri antara panggilan pelbagai muka Java: Mendengarkan kesan antara muka A pada antara muka B dalam pembangunan Java, anda sering menghadapi situasi di mana beberapa antara muka perlu dipanggil pada masa yang sama ...

Adakah menyusun semula arahan di bawah satu benang di Java membawa kepada perubahan dalam hasil output?Adakah menyusun semula arahan di bawah satu benang di Java membawa kepada perubahan dalam hasil output?Apr 19, 2025 pm 04:42 PM

Perbincangan mengenai arahan yang disusun semula di bawah benang tunggal di Java dalam pengaturcaraan Java, pengajaran semula adalah topik yang sama. Arahan menyusun semula merujuk kepada pengkompil dan pemproses ...

See all articles

Alat AI Hot

Undresser.AI Undress

Undresser.AI Undress

Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover

AI Clothes Remover

Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool

Undress AI Tool

Gambar buka pakaian secara percuma

Clothoff.io

Clothoff.io

Penyingkiran pakaian AI

AI Hentai Generator

AI Hentai Generator

Menjana ai hentai secara percuma.

Alat panas

SecLists

SecLists

SecLists ialah rakan penguji keselamatan muktamad. Ia ialah koleksi pelbagai jenis senarai yang kerap digunakan semasa penilaian keselamatan, semuanya di satu tempat. SecLists membantu menjadikan ujian keselamatan lebih cekap dan produktif dengan menyediakan semua senarai yang mungkin diperlukan oleh penguji keselamatan dengan mudah. Jenis senarai termasuk nama pengguna, kata laluan, URL, muatan kabur, corak data sensitif, cangkerang web dan banyak lagi. Penguji hanya boleh menarik repositori ini ke mesin ujian baharu dan dia akan mempunyai akses kepada setiap jenis senarai yang dia perlukan.

EditPlus versi Cina retak

EditPlus versi Cina retak

Saiz kecil, penyerlahan sintaks, tidak menyokong fungsi gesaan kod

Hantar Studio 13.0.1

Hantar Studio 13.0.1

Persekitaran pembangunan bersepadu PHP yang berkuasa

SublimeText3 versi Inggeris

SublimeText3 versi Inggeris

Disyorkan: Versi Win, menyokong gesaan kod!

PhpStorm versi Mac

PhpStorm versi Mac

Alat pembangunan bersepadu PHP profesional terkini (2018.2.1).