Heim > Java > javaLernprogramm > Java – Verwenden Sie udp, um ein einfaches Senden und Empfangen durchzuführen

Java – Verwenden Sie udp, um ein einfaches Senden und Empfangen durchzuführen

little bottle
Freigeben: 2019-04-09 09:59:47
Original
2637 Leute haben es durchsucht

In diesem Artikel geht es um die Verwendung von udp zum einfachen Senden und Empfangen in Java.

Code 1: Sender-demo2Sender.java

package udp;

import java.io.IOException;
import java.net.DatagramPacket;
import java.net.DatagramSocket;
import java.net.InetAddress;
import java.net.SocketException;
Nach dem Login kopieren

In der Netzwerkkommunikationsbranche in Java As Socket-(Socket-)Kommunikation. Auf beiden für die Kommunikation erforderlichen Geräten muss Socket installiert sein.

Verschiedene Protokolle haben unterschiedliche Sockets

Merkmale des UDP-Kommunikationsprotokolls:

1. Kapseln Sie die Daten. Für Datenpakete, verbindungslos orientiert.

2. Jede Paketgröße ist auf 64 KB begrenzt

3. Unzuverlässig, da keine Verbindung besteht

4. Da keine Verbindung hergestellt werden muss, ist es schnell

5. Die UDP-Kommunikation ist nicht in Server und Client unterteilt, sondern nur in Sender und Empfänger.

Zum Beispiel: Walkie-Talkie für die Hausverwaltung, FeiQ-Chat, Spiele...

Socket unter UDP-Protokoll:

DatagramSocket (UDP-Socket-Dienst). )

DatagramPacket(Datenpaketklasse)

DatagramPacket(buf, Länge, Adresse, Port)

buf: gesendeter Dateninhalt

Länge: gesendet Größe des Dateninhalts.

Adresse: das gesendete Ziel-IP-Adressobjekt

Port: die Portnummer.

Schritte zur Verwendung des sendenden Endes:

1. Richten Sie den UDP-Dienst ein.

2. Bereiten Sie die Daten vor, kapseln Sie die Daten in ein Datenpaket und senden Sie es. Das Datenpaket vom Sender muss die IP-Adresse und die Portnummer enthalten.

3. Rufen Sie den UDP-Dienst auf und senden Sie Daten.

4. Schließen Sie die Ressource.

/发送端
@SuppressWarnings("unused")
public class demo1Sender {

    public static void main(String[] args) throws IOException {
        //建立udp的服务
        DatagramSocket datagramSocket = new DatagramSocket();
        //准备数据,把数据封装到数据包中。
        String data = "这个是我第一个udp的例子..";
        //创建了一个数据包
        DatagramPacket packet = new DatagramPacket(data.getBytes(), data.getBytes().length,InetAddress.getLocalHost() , 9090);
        //调用udp的服务发送数据包
        datagramSocket.send(packet);
        //关闭资源 ---实际上就是释放占用的端口号
        datagramSocket.close();

    }

}
Nach dem Login kopieren

Code 2: Receiver-demo1Receive.java

package udp;

import java.io.IOException;
import java.net.DatagramPacket;
import java.net.DatagramSocket;
Nach dem Login kopieren

Schritte zur Verwendung des Empfängers

1. UDP-Dienst einrichten

2. Leere Datenpakete für den Datenempfang vorbereiten.

3. Rufen Sie den UDP-Dienst auf, um Daten zu empfangen.

4. Schließen Sie die Ressource

public class demo1Receive {

    public static void main(String[] args) throws IOException {
        //建立udp的服务 ,并且要监听一个端口。
        DatagramSocket  socket = new DatagramSocket(9090);

        //准备空的数据包用于存放数据。
        byte[] buf = new byte[1024];
        DatagramPacket datagramPacket = new DatagramPacket(buf, buf.length); // 1024
        //调用udp的服务接收数据
        socket.receive(datagramPacket); //receive是一个阻塞型的方法,没有接收到数据包之前会一直等待。 数据实际上就是存储到了byte的自己数组中了。
        System.out.println("接收端接收到的数据:"+ new String(buf,0,datagramPacket.getLength())); // getLength() 获取数据包存储了几个字节。
        System.out.println("receive阻塞了我,哈哈");
        //关闭资源
        socket.close();
    }
}
Nach dem Login kopieren

[Empfohlener Kurs: Java-Video-Tutorial]

Das obige ist der detaillierte Inhalt vonJava – Verwenden Sie udp, um ein einfaches Senden und Empfangen durchzuführen. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
Quelle:csdn.net
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
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage