Client UDP en Java
Résolu/Fermé
A voir également:
- Client UDP en Java
- Waptrick java football - Télécharger - Jeux vidéo
- Jeux java itel football - Télécharger - Jeux vidéo
- Udp vs tcp - Guide
- Java apk - Télécharger - Langages
- Waptrick jeux java itel ✓ - Forum Logiciels
3 réponses
KX
Messages postés
16753
Date d'inscription
samedi 31 mai 2008
Statut
Modérateur
Dernière intervention
25 novembre 2024
3 019
Modifié par KX le 1/06/2014 à 20:23
Modifié par KX le 1/06/2014 à 20:23
Bonjour,
Je n'ai pas le code du serveur car j'imagine que ce n'est pas toi qui le gère, cependant je suis sceptique quant à l'utilisation du "\r\n" en fin de ligne à envoyer. As tu essayé avec "\n" tout court, voire sans rien du tout ?
De plus, sans être expert en UDP, je pense qu'il est préférable de préciser l'adresse IP et le port à la socket (au lieu du packet), si ça ne devrait pas changer grand chose pour l'envoi, ça me paraît plus cohérent pour la réception.
Et est-ce qu'un mode connecté ne pourrait pas régler le problème ?
Ton code un peu modifié (je n'ai pas testé)
La confiance n'exclut pas le contrôle
Je n'ai pas le code du serveur car j'imagine que ce n'est pas toi qui le gère, cependant je suis sceptique quant à l'utilisation du "\r\n" en fin de ligne à envoyer. As tu essayé avec "\n" tout court, voire sans rien du tout ?
De plus, sans être expert en UDP, je pense qu'il est préférable de préciser l'adresse IP et le port à la socket (au lieu du packet), si ça ne devrait pas changer grand chose pour l'envoi, ça me paraît plus cohérent pour la réception.
Et est-ce qu'un mode connecté ne pourrait pas régler le problème ?
Ton code un peu modifié (je n'ai pas testé)
import java.net.DatagramPacket; import java.net.DatagramSocket; import java.net.InetAddress; import java.util.Arrays; import java.util.Scanner; public class clientSerre2 { // Structure de donnée de réception et émission private static final int MTU = 1500; // MTU = Maximum Transmission Unit : taille max prévue par les protocoles Wifi et Ethernet private static final Scanner USER_INPUT = new Scanner(System.in); public static void main(String[] args) throws Exception // Traitement bien moche des différents cas d'erreur. { // Définition des données d'identification du serveur String ip = args[0]; int port = Integer.parseInt(args[1]); InetAddress address = InetAddress.getByName(ip); DatagramSocket socket = new DatagramSocket(port, address); while (true) { // SAISIE System.out.println("Message (stop with .) : "); String inputLine = USER_INPUT.nextLine(); if (inputLine.equals(".")) break; inputLine += "\r\n"; // ? byte[] dataToSend = inputLine.getBytes("ASCII"); // REQUETE System.out.println("Send : "+Arrays.toString(dataToSend)); socket.send(new DatagramPacket(dataToSend, dataToSend.length)); // REPONSE byte[] dataToReceive = new byte[MTU]; DatagramPacket packet = new DatagramPacket(dataToReceive, dataToReceive.length); socket.receive(packet); // AFFICHAGE System.out.println("Received " + packet.getLength() + " bytes from " + packet.getAddress() + ":" + packet.getPort()); System.out.println(Arrays.toString(Arrays.copyOf(dataToReceive, packet.getLength()))); } // Penser à fermer les flux socket.close(); } }
La confiance n'exclut pas le contrôle
Bonjour !
Tout d'abord merci pour votre réponse !
Concernant le \r\n, mon prof m'a bien précisé que je devais le mettre. J'ai tout de même testé sans et ça n'a rien donné non plus.
Je testerai votre code mercredi soir (pas accès à la platine d'ici là) et je reviendrai vers vous pour vous dire si ça marche (ou pas ...)
Pour ce qui est du mode connecté, je vois à peu près ce que c'est, mais pour coder ça en Java .. aucune idée ! Je reprécise que je n'ai aucune formation sur tout ce qui est réseau ! les notions de socket, packet, etc m'étaient encore inconnues il y a quelques semaines ^^ mes cours de Java se limitent aux bases de l'orienté objet (héritage, listes/chaines et un peu d'événementiel et d'interfaces graphiques ...)
en tout cas encore merci, je reviens vers vous d'ici peu !
Tout d'abord merci pour votre réponse !
Concernant le \r\n, mon prof m'a bien précisé que je devais le mettre. J'ai tout de même testé sans et ça n'a rien donné non plus.
Je testerai votre code mercredi soir (pas accès à la platine d'ici là) et je reviendrai vers vous pour vous dire si ça marche (ou pas ...)
Pour ce qui est du mode connecté, je vois à peu près ce que c'est, mais pour coder ça en Java .. aucune idée ! Je reprécise que je n'ai aucune formation sur tout ce qui est réseau ! les notions de socket, packet, etc m'étaient encore inconnues il y a quelques semaines ^^ mes cours de Java se limitent aux bases de l'orienté objet (héritage, listes/chaines et un peu d'événementiel et d'interfaces graphiques ...)
en tout cas encore merci, je reviens vers vous d'ici peu !