Heim > Java > javaLernprogramm > Java DatagramSocket

Java DatagramSocket

王林
Freigeben: 2024-08-30 16:16:30
Original
567 Leute haben es durchsucht

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 Probetests

Starten Sie Ihren kostenlosen Softwareentwicklungskurs

Webentwicklung, Programmiersprachen, Softwaretests und andere

Syntax

Die Syntax von Java DatagramSocket lautet wie folgt:

DatagramSocket variable_name = new DatagramSocket();
Nach dem Login kopieren

Wie funktioniert DatagramSocket in Java?

  • Datagram Sockets werden auf der Client-Programmseite und der Server-Programmseite erstellt, indem die DatagramSocket-Klasse für die Kommunikationsverbindung und zum Senden und Empfangen der Datenpakete verwendet wird.
  • Der DatagramSocket()-Konstruktor kann ausgewählt werden, um einen Datagram-Socket auf der Client-Programmseite zu erstellen, und der DatagramSocket(int-Port)-Konstruktor kann ausgewählt werden, um einen Datagram-Socket auf der Server-Programmseite zu erstellen.
  • SocketException-Objekt wird von einem der Konstruktoren ausgelöst, wenn sie die Datagramm-Sockets nicht erstellen können oder wenn der Datagramm-Socket nicht an den Port gebunden werden kann.
  • Sobald das Programm das Datagramm-Socket-Objekt erstellt, wird send(DatagramPacket dgp) vom Programm aufgerufen, um die Datagramm-Pakete zu senden, bzw. Receive(DatagramPacket dgp), um Datagramm-Pakete zu empfangen.

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();
}
}
Nach dem Login kopieren

Ausgabe:

Java DatagramSocket

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.

Konstrukteure

Es gibt mehrere Konstruktoren der DatagramSocket-Klasse. Sie sind:

  • DatagramSocket(): Ein Datagram-Socket wird mit dem DatagramSocket()-Konstruktor erstellt und an den verfügbaren Port auf dem lokalen Host-Computer gebunden.
  • DatagramSocket(int): Ein Datagram-Socket wird mit dem DatagramSocket()-Konstruktor erstellt und an den angegebenen Port auf dem lokalen Host-Computer gebunden.
  • DatagramSocket(int, InetAddress): Ein Datagram-Socket wird mit dem DatagramSocket()-Konstruktor erstellt und an die angegebene lokale Internetadresse gebunden.

Beispiel zur Implementierung von Java DatagramSocket

Im Folgenden finden Sie die genannten Beispiele:

Beispiel

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());
}
}
Nach dem Login kopieren

Ausgabe:

Java DatagramSocket

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“.

Fazit

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!

Verwandte Etiketten:
Quelle:php
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