Maison  >  Article  >  Java  >  java-Utilisez udp pour effectuer un envoi et une réception simples

java-Utilisez udp pour effectuer un envoi et une réception simples

little bottle
little bottleoriginal
2019-04-09 09:59:472596parcourir

Cet article parle de l'utilisation d'udp pour effectuer un envoi et une réception simples en Java.

Code 1 : Sender-demo2Sender.java

package udp;

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

Communication réseau en java L'industrie l'appelle communication Socket (socket), et les deux appareils requis pour communiquer doivent avoir Socket installé.

Différents protocoles ont des sockets différents

Caractéristiques du protocole de communication UDP :

1. Encapsuler les données Pour les paquets de données, orientés sans connexion.

2. Chaque taille de paquet est limitée à 64K

3. Peu fiable car il n'y a pas de connexion

4. Parce qu'il n'est pas nécessaire d'établir une connexion, elle est rapide

5. La communication UDP n'est pas divisée en serveur et client, seulement en expéditeur et destinataire.

Par exemple : talkies-walkies de gestion immobilière, chat FeiQ, jeux...

Socket sous protocole udp :

DatagramSocket (service de socket udp )

DatagramPacket(classe de paquet de données)

DatagramPacket(buf, longueur, adresse, port)

buf : contenu des données envoyées

longueur : envoyée Le taille du contenu des données.

adresse : l'objet adresse IP de destination envoyé

port : le numéro de port.

Étapes d'utilisation de l'extrémité d'envoi :

1. Établissez le service udp.

2. Préparez les données, encapsulez les données dans un paquet de données et envoyez-le. Le paquet de données provenant de l'expéditeur doit contenir l'adresse IP et le numéro de port.

3. Appelez le service UDP et envoyez des données.

4. Fermez la ressource.

/发送端
@SuppressWarnings("unused")
public class demo1Sender {

    public static void main(String[] args) throws IOException {
        //建立udp的服务
        DatagramSocket datagramSocket = new DatagramSocket();
        //准备数据,把数据封装到数据包中。
        String data = "这个是我第一个udp的例子..";
        //创建了一个数据包
        DatagramPacket packet = new DatagramPacket(data.getBytes(), data.getBytes().length,InetAddress.getLocalHost() , 9090);
        //调用udp的服务发送数据包
        datagramSocket.send(packet);
        //关闭资源 ---实际上就是释放占用的端口号
        datagramSocket.close();

    }

}

Code 2 : Receiver-demo1Receive.java

package udp;

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

Étapes d'utilisation du récepteur

1. Établissez le service udp

2. Préparez les paquets de données vides pour recevoir des données.

3. Appelez le service UDP pour recevoir des données.

4. Fermez la ressource

public class demo1Receive {

    public static void main(String[] args) throws IOException {
        //建立udp的服务 ,并且要监听一个端口。
        DatagramSocket  socket = new DatagramSocket(9090);

        //准备空的数据包用于存放数据。
        byte[] buf = new byte[1024];
        DatagramPacket datagramPacket = new DatagramPacket(buf, buf.length); // 1024
        //调用udp的服务接收数据
        socket.receive(datagramPacket); //receive是一个阻塞型的方法,没有接收到数据包之前会一直等待。 数据实际上就是存储到了byte的自己数组中了。
        System.out.println("接收端接收到的数据:"+ new String(buf,0,datagramPacket.getLength())); // getLength() 获取数据包存储了几个字节。
        System.out.println("receive阻塞了我,哈哈");
        //关闭资源
        socket.close();
    }
}

[Cours recommandé : Tutoriel vidéo 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:
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