Maison > Java > javaDidacticiel > le corps du texte

Comment la programmation réseau Java utilise-t-elle UDP pour la communication sans connexion ?

WBOY
Libérer: 2024-04-15 12:51:01
original
428 Les gens l'ont consulté

UDP (User Datagram Protocol) est un protocole réseau léger sans connexion couramment utilisé dans les applications sensibles au temps. Il permet aux applications d'envoyer et de recevoir des données sans établir de connexion TCP. Un exemple de code Java peut être utilisé pour créer un serveur et un client UDP, le serveur écoutant les datagrammes entrants et répondant, et le client envoyant des messages et recevant des réponses. Ce code peut être utilisé pour créer des exemples concrets tels que des applications de chat ou des systèmes de collecte de données.

Comment la programmation réseau Java utilise-t-elle UDP pour la communication sans connexion ?

Programmation réseau Java : communication sans connexion utilisant UDP

Introduction

UDP (User Datagram Protocol) est un protocole réseau léger et sans connexion couramment utilisé dans les applications en cours sensibles au temps. Il permet aux applications d'envoyer et de recevoir des données sans établir de connexion TCP.

Utilisation

Voici un exemple de création d'un serveur et d'un client UDP en utilisant Java :

Code serveur :

import java.net.*;

public class UDPServer {

    public static void main(String[] args) throws Exception {
        // 创建一个DatagramSocket,监听6789端口
        DatagramSocket serverSocket = new DatagramSocket(6789);

        // 持续监听传入的数据报
        while (true) {
            // 创建一个数据报对象来接收数据
            DatagramPacket receivePacket = new DatagramPacket(new byte[1024], 1024);

            // 接收数据报
            serverSocket.receive(receivePacket);

            // 获取客户端地址和端口
            InetAddress clientAddress = receivePacket.getAddress();
            int clientPort = receivePacket.getPort();

            // 将数据报转换为字符串
            String message = new String(receivePacket.getData(), 0, receivePacket.getLength());

            System.out.println("收到来自 " + clientAddress + ":" + clientPort + " 的消息:" + message);

            // 创建一个数据报对象来响应客户端
            DatagramPacket responsePacket = new DatagramPacket(
                    ("响应:" + message).getBytes(),
                    ("响应:" + message).getBytes().length,
                    clientAddress,
                    clientPort
            );

            // 发送响应
            serverSocket.send(responsePacket);
        }

        // 关闭服务器套接字
        serverSocket.close();
    }
}
Copier après la connexion

Code client :

import java.net.*;

public class UDPClient {

    public static void main(String[] args) throws Exception {
        // 创建一个DatagramSocket
        DatagramSocket clientSocket = new DatagramSocket();

        // 获取要发送的消息
        String message = "你好,世界!";

        // 将消息转换为字节数组
        byte[] messageBytes = message.getBytes();

        // 创建一个数据报对象,将消息发送到服务器的6789端口
        DatagramPacket sendPacket = new DatagramPacket(
                messageBytes,
                messageBytes.length,
                InetAddress.getByName("localhost"), // 服务器地址
                6789 // 服务器端口
        );

        // 发送数据报
        clientSocket.send(sendPacket);

        // 创建一个数据报对象来接收服务器的响应
        DatagramPacket receivePacket = new DatagramPacket(new byte[1024], 1024);

        // 接收响应
        clientSocket.receive(receivePacket);

        // 将响应转换为字符串
        String response = new String(receivePacket.getData(), 0, receivePacket.getLength());

        // 打印响应
        System.out.println("收到服务器的响应:" + response);

        // 关闭客户端套接字
        clientSocket.close();
    }
}
Copier après la connexion

Cas pratique

Ce le code peut être utilisé Créez une application de chat simple ou un système de collecte de données. Par exemple, vous pouvez utiliser le code client pour envoyer un message au serveur, puis utiliser le code serveur pour répondre au message.

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!

Étiquettes associées:
source:php.cn
Déclaration de ce site Web
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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal