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!