Maison  >  Article  >  Java  >  Java DatagramSocket

Java DatagramSocket

王林
王林original
2024-08-30 16:16:30486parcourir

La classe Java DatagramSocket représente un type de socket réseau sans connexion et utilisé pour envoyer les paquets du datagramme et recevoir les paquets du datagramme ; pour la livraison de n'importe quel paquet, la socket datagramme est le point d'envoi et de réception du service, et chaque paquet envoyé ou reçu à l'aide de la socket datagramme est adressé individuellement puis acheminé vers la destination, et si plusieurs paquets sont transmis entre deux machines, le routage des paquets peut être différent, et ils peuvent arriver dans n'importe quel ordre, et l'option SO_BROADCAST est activée dans un socket de datagramme nouvellement construit qui permet la transmission de diagrammes de diffusion.

PUBLICITÉ Cours populaire dans cette catégorie MAÎTRISÉE JAVA - Spécialisation | 78 séries de cours | 15 tests simulés

Commencez votre cours de développement de logiciels libres

Développement Web, langages de programmation, tests de logiciels et autres

Syntaxe

La syntaxe de Java DatagramSocket est la suivante :

DatagramSocket variable_name = new DatagramSocket();

Comment DatagramSocket fonctionne-t-il en Java ?

  • Les sockets Datagram sont créés côté programme client et côté programme serveur en utilisant la classe DatagramSocket pour la liaison de communication et pour l'envoi et la réception des paquets de données.
  • Le constructeur DatagramSocket() peut être choisi pour créer un socket de datagramme côté programme client, et le constructeur DatagramSocket(int port) peut être choisi pour créer un socket de datagramme côté programme serveur.
  • L'objet SocketException est lancé par l'un ou l'autre des constructeurs s'ils ne peuvent pas créer les sockets de datagramme ou si le socket de datagramme ne peut pas être lié au port.
  • Une fois que le programme a créé l'objet socket datagramme, send(DatagramPacket dgp) est appelé par le programme pour envoyer les paquets de datagramme et recevoir(DatagramPacket dgp) pour recevoir les paquets de datagramme, respectivement.

Considérez le programme ci-dessous pour envoyer et recevoir des paquets de datagrammes en utilisant la classe DatagramSocket :

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();
}
}

Sortie :

Java DatagramSocket

Explication : Dans le programme ci-dessus, deux ensembles de programmes sont créés : l'envoi de paquets de données à l'aide de la classe DatagramSocket et un pour la réception de paquets de données à l'aide de la classe DatagramSocket. Dans le programme d'envoi de paquets de données à l'aide de la classe DatagramSocket, une instance d'une classe DatagramSocket est créée. Ensuite, la chaîne est affectée à la variable strn. Ensuite, l'adresse IP Internet est attribuée à une variable. Ensuite, le paquet de datagramme est créé et la méthode d'envoi de la classe DatagramSocket est utilisée pour envoyer les paquets de données à l'adresse IP de destination.

Dans le programme de réception de paquets de données utilisant la classe DatagramSocket, une instance d'une classe DatagramSocket est créée. Ensuite, l'instance de la classe d'octets est créée. Ensuite, le paquet de datagramme est créé et la méthode de réception de la classe DatagramSocket est utilisée pour recevoir les paquets de données à l'adresse IP source.

Constructeurs

Il existe plusieurs constructeurs de la classe DatagramSocket. Ce sont :

  • DatagramSocket() : Un socket de datagramme est construit à l'aide du constructeur DatagramSocket() et il est lié au port disponible sur la machine hôte locale.
  • DatagramSocket(int) : Un socket de datagramme est construit à l'aide du constructeur DatagramSocket() et il est lié au port spécifié sur la machine hôte locale.
  • DatagramSocket(int, InetAddress) : Un socket de datagramme est créé à l'aide du constructeur DatagramSocket() et il est lié à l'adresse Internet locale spécifiée.

Exemple d'implémentation de Java DatagramSocket

Ci-dessous l'exemple mentionné :

Exemple

Démontrer l'utilisation de diverses méthodes de la classe DatagramScoket.

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());
}
}

Sortie :

Java DatagramSocket

Explication : Dans le programme ci-dessus, une classe appelée programme est définie. Ensuite, une instance de la classe socket datagramme est créée. La méthode setSendBufferSize() de la classe socket datagramme est appelée, qui envoie la taille du tampon. Ensuite, la méthode getSendBufferSize() de la classe socket datagramme est appelée, qui reçoit la taille du tampon.

Ensuite, la méthode setReceiveBufferSize() de la classe socket datagramme est appelée, puis la méthode getReceiveBufferSize() de la classe socket datagramme est appelée, qui sont utilisées pour envoyer et recevoir les tailles de tampon. Ensuite, la méthode setReuseAddress() de la classe socket datagramme est appelée, puis la méthode getReuseAddress() de la classe socket datagramme est appelée pour envoyer et recevoir l'adresse réutilisée.

Ensuite, la méthode setBroadcast() de la classe socket datagramme est appelée, puis la méthode getBroadcast() de la classe socket datagramme est appelée pour définir et obtenir la diffusion. Ensuite, la méthode setTrafficClass() de la classe de socket datagramme est appelée, puis la méthode getTrafficClass() de la classe de socket datagramme est appelée pour définir et obtenir les classes de trafic.

Ensuite, la méthode getChannel() de la classe socket datagramme est appelée, qui renvoie un vrai ou un faux. Ensuite, la méthode close() de la classe socket datagramme est appelée pour fermer le socket. Ensuite, la méthode isClosed() de la classe socket datagramme est appelée pour vérifier si la socket est fermée ou non, et elle renvoie un vrai si la socket est fermée sinon faux.

Conclusion

Dans ce tutoriel, nous comprenons le concept de classe DatagramSocket en Java à travers la définition, la syntaxe de la classe DatagramSocket en Java, le fonctionnement de la classe DatagramSocket en Java à travers des exemples et leurs sorties.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Article précédent:Expressions Java LambdaArticle suivant:Expressions Java Lambda