Maison  >  Article  >  Java  >  Introduction détaillée à la communication Java UDP

Introduction détaillée à la communication Java UDP

王林
王林avant
2019-11-26 14:32:513106parcourir

Introduction détaillée à la communication Java UDP

Introduction :

UDP est le protocole de datagramme utilisateur Pour manipuler UDP en Java, utilisez les classes java.net et DatagramSocket sous le package DatagramPacket dans. le JDK. Les messages de données utilisateur peuvent être facilement contrôlés. La classe

DatagramPacket remplit les octets de données dans un paquet UDP, appelé datagramme.

DatagramSocket est utilisé pour envoyer ce colis. Si vous acceptez des données, vous pouvez accepter un objet DatagramPack du DatagramSocket, puis lire le contenu des données du package.

UDP est une communication simplex sans connexion, qui est rapide.

Tutoriels vidéo en ligne recommandés : Vidéo en ligne Java

Classe DatagramSocket

Constructeur :

DatagramSocket()

Créez une instance, généralement utilisée pour la programmation client. Elle n'a pas de port d'écoute spécifique et n'en utilise qu'un temporaire.

DatagramSocket(int port)

Créez une instance et surveillez les paquets du port Port.

DatagramSocket(int port, InetAddress laddr)

C'est un constructeur très utile Lorsqu'une machine a plus d'une adresse IP, l'instance qu'elle crée ne reçoit que les messages de LocalAddr. Le port et l'adresse sont spécifiés dans l'objet

DatagramSocket(SocketAddress bindaddr)

bindaddr.

Fonctions couramment utilisées :

receive(DatagramPacket p)

Recevoir des paquets de données dans p. La méthode de réception est bloquante. Si aucun paquet de datagramme n'est reçu, il sera bloqué.

send(DatagramPacket p)

Envoyer le message p à la destination.

setSoTimeout(int timeout)

Définissez le délai d'expiration en millisecondes.

close()

Fermez DatagramSocket. Lorsque l'application se ferme, elle libère généralement activement des ressources et ferme le Socket. Cependant, en raison d'une sortie anormale, les ressources peuvent ne pas être recyclées. Par conséquent, vous devez utiliser activement cette méthode pour fermer le Socket lorsque le programme est terminé, ou fermer le Socket après avoir détecté une exception.

2. Classe DatagramPacket

La classe DatagramPacket est utilisée pour traiter les messages, regrouper des tableaux d'octets, des adresses cibles, des ports cibles et d'autres données dans message ou désassemblez le message dans un tableau d'octets.
Constructeur :

DatagramPacket(byte[] buf, int length, InetAddress addr, int port)

Prenez les données de longueur longue à partir du décalage du tableau d'octets buf pour créer un objet de données. L'adresse cible est addr et le port cible est port.

DatagramPacket(byte buf[], int offset, int length, SocketAddress address)

Récupère les données de longueur à partir du décalage du tableau d'octets buf pour créer un objet de données. L'adresse cible est l'adresse

Fonctions communes :

getData() byte[]

Obtenu à partir de. l'instance Le tableau d'octets codant dans le message.

setData(byte[] buf, int offset, int length)

Définir le contenu des données dans le package datagramme

3. Processus de communication de la communication UDP

Expéditeur UDP :

1. Établissez le service de mise à jour.

2. Fournissez des données et encapsulez les données dans des paquets de données.

3. Envoyez le paquet de données via la fonction d'envoi du service socket.

4. Fermer les ressources.

Récepteur UDP :

1 Définir le service udpsocket, qui écoute généralement sur un port.

2. Définissez un paquet de données pour stocker les données d'octet reçues.

3. Stockez les données reçues dans le paquet de données défini via la méthode de réception du service socket.

4. Grâce aux fonctions uniques de l'objet paquet de données, ces différentes données sont extraites et imprimées sur la console.

5. Fermer les ressources.

Pour plus de questions connexes, veuillez consulter le didacticiel de l'article Java : Démarrer avec Java

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:
Cet article est reproduit dans:. en cas de violation, veuillez contacter admin@php.cn Supprimer