Aller au contenu

Envoie d'un datagramme

Comme il n'y a pas de connexion pour UDP, la notion de client et de serveur est un peu plus vague. La réception n'ayant pas d'accusé de réception, il ne sera pas possible d'utiliser un buffer comme en TCP. Plutôt, on pourra recevoir une certaine quantité d'octets et la traiter au fur et à mesure.

Pour recevoir des datagrammes UDP, on débute par choisir l'adresse IP et le port désirés pour la connexion :

InetAddress inetAddress = InetAddress.getByName("10.4.128.4");
int port = 1234;

Par la suite, on pourra tenter d'ouvrir un socket UDP au port désiré et envoyer un datagramme. L'utilisation d'un block try intégré (ligne 1) rend le code plus facile à comprendre :

try (DatagramSocket datagramSocket = new DatagramSocket()) {
    // Préparer le message
    String message = "Hello UDP!";
    DatagramPacket datagramPacket = new DatagramPacket(message.getBytes(), message.length(), inetAddress, port);

    // Envoyer le datagramme
    datagramSocket.send(datagramPacket);
}

Contrairement aux sockets TCP, on devra ici spécifier la taille du message à envoyer ainsi que la quantité d'octets. Nous avons donc la possibilité de faire une gestion différente de l'information.