Java DatagramSocket-Klasse stellt eine Art Netzwerk-Socket dar, der verbindungslos ist und zum Senden der Pakete des Datagramms und zum Empfangen der Pakete des Datagramms verwendet wird; Für die Zustellung eines beliebigen Pakets ist der Datagramm-Socket der Sende- und Empfangspunkt des Dienstes, und jedes über den Datagramm-Socket gesendete oder empfangene Paket wird einzeln adressiert und dann an das Ziel weitergeleitet. Wenn mehrere Pakete zwischen zwei Maschinen übertragen werden, Das Routing der Pakete kann unterschiedlich sein und sie können in beliebiger Reihenfolge eintreffen. Die Option SO_BROADCAST ist in einem neu erstellten Datagramm-Socket aktiviert, der die Übertragung von Broadcast-Diagrammen ermöglicht.
WERBUNG Beliebter Kurs in dieser Kategorie JAVA MASTERY - Spezialisierung | 78 Kursreihe | 15 ProbetestsStarten Sie Ihren kostenlosen Softwareentwicklungskurs
Webentwicklung, Programmiersprachen, Softwaretests und andere
Syntax
Die Syntax von Java DatagramSocket lautet wie folgt:
DatagramSocket variable_name = new DatagramSocket();
Betrachten Sie das folgende Programm zum Senden und Empfangen von Datagrammpaketen mithilfe der DatagramSocket-Klasse:
Code:
//Java program to send datagram packets using DatagramSocket class import java.net.*; public class Sender { public static void main(String[] args) throws Exception { DatagramSocket datasoc = new DatagramSocket(); String strn = "Welcome to DatagramSocket class"; InetAddress ipaddr = InetAddress.getByName("127.0.0.1"); DatagramPacket dpac = new DatagramPacket(strn.getBytes(), strn.length(), ipaddr, 3000); datasoc.send(dpac); datasoc.close(); } } //Java program to receive datagram packets using DatagramSocket class import java.net.*; public class Receiver { public static void main(String[] args) throws Exception { DatagramSocket datasoc = new DatagramSocket(3000); byte[] buff = new byte[1024]; DatagramPacket dpac = new DatagramPacket(buff, 1024); datasoc.receive(dpac); String strn = new String(dpac.getData(), 0, dpac.getLength()); System.out.println(strn); datasoc.close(); } }
Ausgabe:
Erklärung: Im obigen Programm werden zwei Sätze von Programmen erstellt: zum Senden von Datenpaketen mithilfe der DatagramSocket-Klasse und einer zum Empfangen von Datenpaketen mithilfe der DatagramSocket-Klasse. Im Programm zum Senden von Datenpaketen mithilfe der DatagramSocket-Klasse wird eine Instanz einer DatagramSocket-Klasse erstellt. Anschließend wird der String der Variablen strn zugewiesen. Anschließend wird die Internet-IP-Adresse einer Variablen zugewiesen. Anschließend wird das Datagrammpaket erstellt und die Sendemethode der DatagramSocket-Klasse verwendet, um die Datenpakete an die Ziel-IP-Adresse zu senden.
Im Programm zum Empfangen von Datenpaketen mithilfe der DatagramSocket-Klasse wird eine Instanz einer DatagramSocket-Klasse erstellt. Dann wird die Instanz der Byte-Klasse erstellt. Anschließend wird das Datagrammpaket erstellt und die Empfangsmethode der DatagramSocket-Klasse wird verwendet, um die Datenpakete an die Quell-IP-Adresse zu empfangen.
Es gibt mehrere Konstruktoren der DatagramSocket-Klasse. Sie sind:
Im Folgenden finden Sie die genannten Beispiele:
Demonstrieren Sie die Verwendung verschiedener Methoden der DatagramScoket-Klasse.
Code:
import java.io.IOException; import java.net.DatagramSocket; public class program { public static void main(String[] args) throws IOException { //Datagram Socket class Constructor is called DatagramSocket sock = new DatagramSocket(1235); // The method setSendBufferSize() method of datagram socket class is called sock.setSendBufferSize(20); // The method getSendBufferSize() method of datagram socket class is called System.out.println("The buffer size sent is : " + sock.getSendBufferSize()); // The method setReceiveBufferSize() method of datagram socket class is called sock.setReceiveBufferSize(20); // The method getReceiveBufferSize() method of datagram socket class is called System.out.println("The buffer size received is : " + sock.getReceiveBufferSize()); // The method setReuseAddress() method of datagram socket class is called sock.setReuseAddress(false); // The method getReuseAddress() method of datagram socket class is called System.out.println("The SetReuse address is set to : " + sock.getReuseAddress()); // The method setBroadcast() method of datagram socket class is called sock.setBroadcast(true); // The method getBroadcast() method of datagram socket class is called System.out.println("The setBroadcast is set to : " + sock.getBroadcast()); // The method setTrafficClass() method of datagram socket class is called sock.setTrafficClass(45); // The method getTrafficClass() method of datagram socket class is called System.out.println("The Traffic class is set to : " + sock.getTrafficClass()); // The method getChannel() method of datagram socket class is called System.out.println("The Channel is set to : " + ((sock.getChannel()!=null)?sock.getChannel():"null")); // The method setSocketImplFactory() method of datagram socket class is called sock.setDatagramSocketImplFactory(null); // The method close() method of datagram socket class is called sock.close(); // The method isClosed() method of datagram socket class is called System.out.println("If the Socket Is Closed : " + sock.isClosed()); } }
Ausgabe:
Erklärung: Im obigen Programm ist eine Klasse namens Programm definiert. Anschließend wird eine Instanz der Datagramm-Socket-Klasse erstellt. Es wird die Methode setSendBufferSize() der Datagram-Socket-Klasse aufgerufen, die die Puffergröße sendet. Dann wird die Methode getSendBufferSize() der Datagramm-Socket-Klasse aufgerufen, die die Puffergröße empfängt.
Dann wird die Methode setReceiveBufferSize() der Datagram-Socket-Klasse aufgerufen, und dann wird die Methode getReceiveBufferSize() der Datagram-Socket-Klasse aufgerufen, die zum Senden und Empfangen der Puffergrößen verwendet wird. Dann wird die Methode setReuseAddress() der Datagram-Socket-Klasse aufgerufen, und dann wird die Methode getReuseAddress() der Datagram-Socket-Klasse aufgerufen, um die wiederverwendete Adresse zu senden und zu empfangen.
Dann wird die Methode setBroadcast() der Datagram-Socket-Klasse aufgerufen, und dann wird die Methode getBroadcast() der Datagram-Socket-Klasse aufgerufen, um die Übertragung festzulegen und abzurufen. Dann wird die Methode setTrafficClass() der Datagramm-Socket-Klasse aufgerufen, und dann wird die Methode getTrafficClass() der Datagramm-Socket-Klasse aufgerufen, um die Verkehrsklassen festzulegen und abzurufen.
Dann wird die Methode getChannel() der Datagramm-Socket-Klasse aufgerufen, die „true“ oder „false“ zurückgibt. Dann wird die Methode close() der Datagramm-Socket-Klasse aufgerufen, um den Socket zu schließen. Dann wird die Methode isClosed() der Datagramm-Socket-Klasse aufgerufen, um zu prüfen, ob der Socket geschlossen ist oder nicht, und sie gibt „true“ zurück, wenn der Socket geschlossen ist, andernfalls „false“.
In diesem Tutorial verstehen wir das Konzept der DatagramSocket-Klasse in Java durch Definition, die Syntax der DatagramSocket-Klasse in Java, die Funktionsweise der DatagramSocket-Klasse in Java anhand von Beispielen und deren Ausgaben.
Das obige ist der detaillierte Inhalt vonJava DatagramSocket. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!