diff --git a/Implementation/src/ChatApp.java b/Implementation/src/ChatApp.java new file mode 100644 index 0000000..1fecbb9 --- /dev/null +++ b/Implementation/src/ChatApp.java @@ -0,0 +1,73 @@ +import java.io.IOException; +import java.net.DatagramPacket; +import java.net.DatagramSocket; +import java.net.InetAddress; +import java.net.SocketException; +import java.net.UnknownHostException; +import java.util.ArrayList; + +public class ChatApp { + + /* Liste des utilisateurs actifs */ + private ArrayList actifUsers ; + + /* ChatApp est associé à un utilisateur */ + private Utilisateur me; + + public ChatApp(String pseudo, Integer port){ + this.actifUsers = new ArrayList() ; + // Recuperer adresse IP de l'utilisateur + InetAddress ip = null ; + try { + ip = InetAddress.getLocalHost(); + } catch (UnknownHostException e) { + e.printStackTrace(); + } + //ip.getHostAddress(); + this.me = new Utilisateur(pseudo,port,ip); + this.actifUsers.add(me); + } + + public void connexion() throws IOException { + // Envoie en broadcast à tous les utilsateurs + DatagramSocket socket = new DatagramSocket(); + socket.setBroadcast(true); + // @ de broadcast du réseau de l'utilisateur me + InetAddress broadcastAdress = this.me.getIp(); // A MODIFIER + // Message que l'on envoie à tous les utilisateurs actifs + String broadcastMessage = this.me.toString() ; + byte[]buffer = broadcastMessage.getBytes(); + DatagramPacket packet = new DatagramPacket( buffer, buffer.length, InetAddress.getLoopbackAddress(), 1234 ); + socket.send(packet); + socket.close(); + System.out.println("Chat app -> " + broadcastMessage); + } + + public static void main (String[] args) { + //Integer p = 2345 ; + ChatApp app = new ChatApp(args[0],Integer.parseInt(args[1])) ; + try { + app.connexion(); + } catch (IOException e) { + e.printStackTrace(); + } + DatagramSocket socket = null; + try { + socket = new DatagramSocket(1234); + } catch (SocketException e1) { + e1.printStackTrace(); + } + byte buffer[] = new byte[1024]; + while(true) + { + DatagramPacket data = new DatagramPacket(buffer,buffer.length); + try { + socket.receive(data); + } catch (IOException e) { + e.printStackTrace(); + } + System.out.println(data); + } + } + +} diff --git a/Implementation/src/Utilisateur.java b/Implementation/src/Utilisateur.java new file mode 100644 index 0000000..6c292a2 --- /dev/null +++ b/Implementation/src/Utilisateur.java @@ -0,0 +1,42 @@ +import java.net.InetAddress; + +public class Utilisateur { + + private String pseudo ; + private Integer port; + private InetAddress ip ; + public Utilisateur(String pseudo,Integer port, InetAddress ip ){ + this.setPseudo(pseudo) ; + this.setPort(port); + this.ip = ip ; + } + + public String getPseudo() { + return pseudo; + } + + public void setPseudo(String pseudo) { + this.pseudo = pseudo; + } + + public Integer getPort() { + return port; + } + + public void setPort(Integer port) { + this.port = port; + } + + public InetAddress getIp() { + return ip; + } + + public String toString(){ + String s = ""; + s+="pseudo " + this.pseudo + " \n"; + s+="port " + (this.port).toString() + "\n"; + s+="id " + (this.ip).toString() + "\n"; + return s; + } + +}