Bonjour,

Je débute en java, plus par nécessite que par plaisir mais ce n'est pas inintéressant au final
J'ai un projet au lycée de supervision d'un système via Ethernet/wifi. (pour info PIC + ENC28J60)
Je le piloterai avec un programme java avec des datagrammes udp. (un nombre de 0 à 99 me suffira amplement pour communiqué d'où la limitation à 2 bytes en réception)

Mon début de programme :


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
32
33
34
35
36
37
38
39
import java.net.*;
import java.io.*;
 
public class udp {
 
	static int port=2011; // Le port UDP de destination
	static int port2=2010; // Le port UDP local
	static InetAddress adr=null;
	static DatagramSocket sock=null;
	static String message="Test";
	static byte[] tampon=new byte[message.length()];
 
	static boolean send(String message) throws IOException{
		adr=InetAddress.getByName("127.0.0.1");
		tampon=message.getBytes();
		DatagramPacket paquet=new DatagramPacket(tampon,tampon.length,adr,port);
		sock=new DatagramSocket();
		sock.send(paquet);	
		return true;
	}
 
	static String receive() throws IOException{
		tampon=new byte[2];
		String message2;
		DatagramSocket sock=new DatagramSocket(port2);
		DatagramPacket paquet=new DatagramPacket(tampon,tampon.length);
		sock.receive(paquet);
		message2=new String(tampon);
		System.out.println(message2);
		return message2;
	}
	public static void main(String[] args) throws IOException, SocketException
	{
		send("00");
		if(receive()=="00") System.out.println("ok");		
		else System.out.println("pas ok");
 
	}
}
Mon problème : bien que la console recoit la valeur "00", il me marque "pas ok".

Pourriez vous m'aider ?

Merci d'avance !