Soket udp
salim_Solution
Messages postés
2
Date d'inscription
Statut
Membre
Dernière intervention
-
salim_Solution Messages postés 2 Date d'inscription Statut Membre Dernière intervention -
salim_Solution Messages postés 2 Date d'inscription Statut Membre Dernière intervention -
Bonjours à tous s'il vous plait je veux envoyer un numéro de type double (double message=1542.12) pas chaine de caractére type String(String message="Bonjour le monde!") au serveur , alors qui ce je peux faire et merci d'avance
voilà les classes
//serveur
voilà les classes
package project.udp; import java.io.*; import java.net.*; import java.net.*; import java.io.*; class EnvoiDatagramme{ public static void main(String argv[]) throws SocketException, IOException, UnknownHostException{ String message = "Bonjour le monde!"; byte[] tampon = message.getBytes(); InetAddress adresse = null; // recupère l’adresse IP de la machine marine adresse = InetAddress.getLocalHost(); System.out.println(adresse); // crée l’objet qui stockera les données du datagramme à envoyer DatagramPacket envoi=new DatagramPacket(tampon,tampon.length,adresse,12000); // crée un socket UDP (le port est choisi par le système) DatagramSocket socket=new DatagramSocket(); // envoie le datagramme UDP socket.send(envoi); } }
//serveur
import java.net.*; import java.io.*; class ReceptionDatagramme { public static void main(String argv[]) throws SocketException, IOException { while(true){ byte[] tampon = new byte[1024]; String texte; // crée un socket UDP qui attends des datagrammes sur le port 50000 DatagramSocket socket =new DatagramSocket(12000); // crée un objet pour stocker les données du datagramme attendu DatagramPacket reception = new DatagramPacket(tampon,tampon.length); // attends puis récupère les données du datagramme socket.receive(reception); // récupère la chaîne de caractère reçue // Note: reception.getLength() contient le nombre d’octets reçus texte=new String(tampon, 0, reception.getLength()); System.out.println("Reception de la machine "+ reception.getAddress().getHostName()+ " sur le port " +reception.getPort()+" :\n"+ texte ); }}}
A voir également:
- Soket udp
- Tcp udp - Guide
- Udp 161 - Forum Réseau
- Udp free - Forum Freebox
- Tcpdump udp ✓ - Forum Linux / Unix
- Open udp port in djezzy algeria - Forum Réseau
1 réponse
Bonjour,
Si j'ai bien compris, vous essayé d'envoyer un seul "double", une seule information?
Vous pouvez envoyer une chaine de caractères, c'est boucoup plus simple et compatible avec l'esprit des Socket; vous puovez ne pas faire appel aux méthodes des Socket datagramme et la taille du buffer etc etc.
Pour convertir du "double" vers String avant d'envoyer :
Pour récuperer le double après la réception du côté serveur :
Si j'ai bien compris, vous essayé d'envoyer un seul "double", une seule information?
Vous pouvez envoyer une chaine de caractères, c'est boucoup plus simple et compatible avec l'esprit des Socket; vous puovez ne pas faire appel aux méthodes des Socket datagramme et la taille du buffer etc etc.
Pour convertir du "double" vers String avant d'envoyer :
double dmessage = 12345.23; String smessage = dmessage + "";
Pour récuperer le double après la réception du côté serveur :
String messageRecu = in.readLine(); // in le BufferedReader créé à partir de l'InputStream de la Socket double message = Double.parseDouble(messageRecu);
salim_Solution
Messages postés
2
Date d'inscription
Statut
Membre
Dernière intervention
j'ai résoudre le problème , Merci bien Monsieur tarek_dotzero pour votre réponse