Heim  >  Artikel  >  Java  >  Detaillierte Erläuterung der Sender- und Empfängerbeispiele zur Simulation der UDP-Übertragung in Java

Detaillierte Erläuterung der Sender- und Empfängerbeispiele zur Simulation der UDP-Übertragung in Java

黄舟
黄舟Original
2017-03-28 10:18:101904Durchsuche

In diesem Artikel werden hauptsächlich relevante Informationen zu den detaillierten Beispielen des Senders und Empfängers einer simulierten UDP-Übertragung in Java vorgestellt. Freunde in Not können sich auf

Der Sender und Empfänger der simulierten UDP-Übertragung in Java beziehen Detaillierte Erläuterung der empfangenden Endinstanz

1. Erstellen Sie das sendende Ende der UDP-Übertragung

1 >
2. Kapseln Sie die zu sendenden Daten in ein Datenpaket


3. Senden Sie das Datenpaket über den UDP-Socket-Dienst; der Socket-Dienst.


2. Erstellen Sie ein Empfangsende für die UDP-Übertragung

import java.io.IOException;
import java.net.DatagramPacket;
import java.net.DatagramSocket;
import java.net.InetAddress;

public class UDPSend {

 public static void main(String[] args) throws IOException {

  System.out.println("发送端启动......");

  // 1、创建UDP的Socket,使用DatagramSocket对象
  DatagramSocket ds = new DatagramSocket();

  // 2、将要发送的数据封装到数据包中
  String str = "UDP传输演示:I'm coming!";

  byte[] buf = str.getBytes(); //使用DatagramPacket将数据封装到该对象的包中

  DatagramPacket dp = new DatagramPacket(buf, buf.length, InetAddress.getByName("192.168.191.1"), 10000);

  // 3、通过UDP的Socket服务将数据包发送出去,使用send方法
  ds.send(dp);

  // 4、关闭Socket服务
  ds.close();
 }
}
1. Da Sie Daten empfangen möchten, müssen Sie einen Port angeben Nummer;

2. Erstellen Sie ein Datenpaket, um die empfangenen Daten zu speichern und das Parsen der Daten mithilfe der Datenpaketobjektmethode zu erleichtern.


3 Empfangsmethode empfängt Daten und speichert sie im Datenpaket.


4. Schließen Sie den Socket-Dienst.


3. Optimieren Sie die Sende- und Empfangsenden der UDP-Übertragung


Da wir in den ersten beiden Teilen nur eine Nachricht senden (oder empfangen) können eine Zeit lang, und dann den Dienst herunterfahren! Wenn wir also mehrere Nachrichten senden möchten, müssen wir den auf der Sendeseite gesendeten Inhalt ständig ändern und außerdem den Server neu starten, was ziemlich mühsam ist. Um die oben genannten Mängel zu beheben, können wir es optimieren:

import java.io.IOException;
import java.net.DatagramPacket;
import java.net.DatagramSocket;

public class UDPReceive {
 public static void main(String[] args) throws IOException {

  System.out.println("接收端启动......");

  // 1、建立UDP的Socket服务
  DatagramSocket ds = new DatagramSocket(10000);

  // 2、创建数据包
  byte[] buf = new byte[1024];
  DatagramPacket dp = new DatagramPacket(buf, buf.length);

  // 3、使用接收方法将数据存储到数据包中
  ds.receive(dp); // 该方法为阻塞式的方法

  // 4、通过数据包对象的方法解析这些数据,例如:地址、端口、数据内容等
  String ip = dp.getAddress().getHostAddress();
  int port = dp.getPort();
  String text = new String(dp.getData(), 0, dp.getLength());

  System.out.println(ip + ":" + port + ":" + text);

  // 5、关闭Socket服务
  ds.close();
 }
}
1 Erstellen Sie auf der sendenden Seite einen BufferedReader und geben Sie Inhalte über die Tastatur ein 2. Fügen Sie auf der Empfangsseite eine while(ture)-Schleife hinzu, um Inhalte kontinuierlich in einer Schleife zu empfangen.

4. Erstellen Sie einen Chatroom

Entsprechend den relevanten Eigenschaften von UDP (User Datagram Protocol, User Datagram Protocol) können wir weitermachen Erstellen Sie einen Chatraum. Ein einfacher Chatraum basierend auf dem UDP-Übertragungsprotokoll, um eine interaktive Chat-Funktion zu realisieren.

Das obige ist der detaillierte Inhalt vonDetaillierte Erläuterung der Sender- und Empfängerbeispiele zur Simulation der UDP-Übertragung in Java. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
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