Bonjour je ne trouvais pas de rubrique ou poster, alors je poste ici.
Je viens de debuter dans la programmation reseau, et j'ai fait mes premiers sockets(client/serveur) via un protocole UDP.
Mais ca ne marche pas. Les 2sont sur la meme machine sa vient peut etre de la. Voici les codes:
serveur
client:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31 import java.net.*; import java.io.*; public class serveurUDP { static int taille = 1024; static byte[] tampon = new byte[taille]; static int port = 9332; public static void main(String[] args)throws Exception { DatagramSocket socket = new DatagramSocket(port); String donne = ""; String message = ""; taille = 0; System.out.println("serveur initialisé"); while(true) { DatagramPacket paquet = new DatagramPacket(tampon, tampon.length); socket.receive(paquet); System.out.println("paquet recu de la part de: "+ paquet.getAddress()); taille = paquet.getLength(); donne = new String(paquet.getData(),0, taille); message = "bonjour"+donne; System.out.println("les données qui seront envoyées sont: "+ message); DatagramPacket envoie = new DatagramPacket(message.getBytes(), message.length(), paquet.getAddress(), paquet.getPort()); socket.send(envoie); } } }
et messages d'erreur:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22 import java.net.*; public class client { static int port = 9332; static int taille = 1024; static byte[] tampon = new byte[taille]; public static void main(String[] args)throws Exception { InetAddress serveur = InetAddress.getLocalHost(); DatagramSocket socket = new DatagramSocket(port); String message = "yoann"; DatagramPacket donneEnvoye = new DatagramPacket(message.getBytes(), message.length(), serveur, port); socket.send(donneEnvoye); DatagramPacket donneRecu = new DatagramPacket(tampon, tampon.length); socket.receive(donneRecu); String texte = new String(donneRecu.getData(), 0, tampon.length); System.out.println(texte); } }
Exception in thread "main" java.net.BindException: Address already in use: Cannot bind
at java.net.PlainDatagramSocketImpl.bind0(Native Method)
at java.net.PlainDatagramSocketImpl.bind(PlainDatagramSocketImpl.java:82)
at java.net.DatagramSocket.bind(DatagramSocket.java:368)
at java.net.DatagramSocket.<init>(DatagramSocket.java:210)
at java.net.DatagramSocket.<init>(DatagramSocket.java:261)
at java.net.DatagramSocket.<init>(DatagramSocket.java:234)
at serveurUDP.main(serveurUDP.java:12)
Comme vous pouvez le voir, c'est un truc tout con et tres basique, mais bon je debute.
Partager