Heim > Java > javaLernprogramm > Hauptteil

So implementieren Sie die UDP-Programmierung für die Netzwerkkommunikation basierend auf dem UDP-Protokoll in Java

王林
Freigeben: 2023-05-17 13:13:47
nach vorne
1243 Leute haben es durchsucht

UDP-Programmierkommunikation

Grundlegende Einführung

  • Die Klassen DatagramSocket und DatagramPacket [Datenpaket/Datagramm] implementieren Netzwerkprogramme basierend auf dem UDP-Protokoll.

  • UDP-Datagramme werden über den Datagram-Socket DatagramSocket gesendet und empfangen. Das System garantiert nicht, dass das UDP-Datagramm sicher an das Ziel übermittelt wird, und es ist auch nicht sicher, wann es ankommt.

  • Das DatagramPacket-Objekt kapselt ein UDP-Datagramm. Das Datagramm enthält die IP-Adresse und Portnummer des Absenders sowie die IP-Adresse und Portnummer des Empfängers.

  • Jedes Datagramm im UDP-Protokoll enthält vollständige Adressinformationen, sodass keine Verbindung zwischen Sender und Empfänger hergestellt werden muss.

Grundlegender Prozess

  • Die beiden Kernklassen/-objekte DatagramSocket-Domäne DatagramPacket

  • Legen Sie den Sender und den Empfänger fest.

  • Erstellen Sie ein Datenpaket.

  • Rufen Sie die Sende- und Empfangsmethoden von DatagramSocket auf.

  • Schließen Sie DatagramSocket.

Schematische Darstellung des UDP-Netzwerkprogrammierungsprinzips

So implementieren Sie die UDP-Programmierung für die Netzwerkkommunikation basierend auf dem UDP-Protokoll in Java

UDP-Beschreibung:

  • Es gibt keinen klaren Server und Client, der sich zum Sender und Empfänger von Daten entwickelt hat.

  • Das Empfangen von Daten und das Generieren von Daten werden über das DatagramSocket-Objekt abgeschlossen.

  • Kapseln Sie Daten in ein DatagramPacket-Objekt/-Paket.

  • Beim Empfang des DatagramPacket-Objekts muss es entpackt und die Daten entnommen werden.

  • DatagramSocket kann angeben, auf welchem ​​Port Daten empfangen werden sollen.

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("接受结束");
    }
}
Nach dem Login kopieren
rrree

Das obige ist der detaillierte Inhalt vonSo implementieren Sie die UDP-Programmierung für die Netzwerkkommunikation basierend auf dem UDP-Protokoll in Java. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
Quelle:yisu.com
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage
Über uns Haftungsausschluss Sitemap
Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!