Rumah >Java >javaTutorial >Bagaimana untuk melaksanakan pengaturcaraan UDP untuk komunikasi rangkaian berdasarkan protokol UDP dalam Java

Bagaimana untuk melaksanakan pengaturcaraan UDP untuk komunikasi rangkaian berdasarkan protokol UDP dalam Java

王林
王林ke hadapan
2023-05-17 13:13:471299semak imbas

Komunikasi pengaturcaraan UDP

Pengenalan asas

  • Kelas DatagramSocket dan DatagramPacket [paket data/datagram] melaksanakan program rangkaian berdasarkan protokol UDP.

  • Datagram UDP dihantar dan diterima melalui DatagramSocket Sistem ini tidak menjamin bahawa datagram UDP akan selamat dihantar ke destinasi, dan juga tidak pasti bila ia akan tiba.

  • Objek DatagramPacket merangkumkan datagram UDP Datagram mengandungi alamat IP dan nombor port pengirim dan alamat IP dan nombor port penerima.

  • Setiap datagram dalam protokol UDP memberikan maklumat alamat lengkap, jadi tidak perlu mewujudkan sambungan antara pengirim dan penerima.

Proses asas

  • Teras dua kelas/objek DatagramSocket domain DatagramPacket

  • Tubuh dan hantar akhir, menerima akhir.

  • Buat paket data

  • Panggil kaedah hantar dan terima DatagramSocket

  • Tutup DatagramSocket .

Gambar rajah skematik prinsip pengaturcaraan rangkaian UDP

Bagaimana untuk melaksanakan pengaturcaraan UDP untuk komunikasi rangkaian berdasarkan protokol UDP dalam Java

Penerangan UDP:

  • Tidak jelas Pelayan dan klien berkembang menjadi penghantar dan penerima data.

  • Menerima data dan menjana data diselesaikan melalui objek DatagramSocket.

  • Enkapsulasi data ke dalam objek/pakej DatagramPacket.

  • Apabila menerima objek DatagramPacket, ia perlu dibongkar dan data dikeluarkan

  • DatagramSocket boleh menentukan port mana untuk menerima data. .

package com.study.srv.demo18;
import java.io.IOException;
import java.net.*;
/**
 * @version 1.0
 * UDP发送端
 */
public class Demo11 {
    public static void main(String[] args) throws IOException {
        //1.创建DatagramSocket对象,准备发送和接收数据,在9998端口接收
        DatagramSocket datagramSocket = new DatagramSocket(9998);
        //2.将需要发送的数据,封装到DatagramPacket对象
        String s="发送的数据";
        byte[] buf=s.getBytes();
        InetAddress ip = InetAddress.getByName("192.168.0.18");
        //说明:封装的DatagramPacket对象
        //buf 内容字节数组
        //buf.length 数据长度
        //ip 主机(ip)
        //9999 端口
        DatagramPacket packet = new DatagramPacket(buf, buf.length, ip, 9999);
        //发送数据
        datagramSocket.send(packet);
        //关闭资源
//        datagramSocket.close();
        System.out.println("发送完毕");
        //发送端变为接收端接收数据
        byte[] bytes = new byte[1024];
        DatagramPacket datagramPacket = new DatagramPacket(bytes, bytes.length);
        datagramSocket.receive(datagramPacket);
        int length = datagramPacket.getLength();
        byte[] data = datagramPacket.getData();
        String string = new String(data, 0, length);
        System.out.println(string);
        datagramSocket.close();
        System.out.println("接受结束");
    }
}
rrree

Atas ialah kandungan terperinci Bagaimana untuk melaksanakan pengaturcaraan UDP untuk komunikasi rangkaian berdasarkan protokol UDP dalam Java. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Artikel ini dikembalikan pada:yisu.com. Jika ada pelanggaran, sila hubungi admin@php.cn Padam