Merge remote-tracking branch 'origin/master'

This commit is contained in:
tuvu
2025-02-25 10:11:58 +01:00
5 changed files with 134 additions and 83 deletions

View File

@@ -0,0 +1,16 @@
package pr.tp2.udp.chat;
public class ChatMulticast {
private static class Receiver implements Runnable {
@Override
public void run() {
// Code de reception et affichage
}
}
public static void main(String[] args) {
// Lecture au clavier et envoie du message
// Vous pouvez utiliser Scanner : https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/util/Scanner.html
}
}

View File

@@ -1,55 +0,0 @@
package pr.tp2.udp.discovery;
public class Discovery {
public static void sendWhois(String id) {
// Envoie un message Whois
}
public static void sendLeaving(String id) {
// Envoie un message Leaving
}
public static void sendIAM(String id, String url) {
// Envoie un message IAM
}
public static void listenAndReply() {
// Ecoute et affiche les évennements IAM,LEAVING
// Réponds aux WHOIS si ID = ID
// URL du service :
String ID = "051005022";
String URL = "https://istic.univ-rennes1.fr/";
}
public static void main(String[] args) {
String cmd = args[0], url = null, id = null;
if (args.length > 1) {
id = args[1];
}
if (args.length == 3) {
url = args[2];
}
switch (cmd) {
case "listen":
listenAndReply();
break;
case "iam":
sendIAM(id, url);
break;
case "leaving":
sendLeaving(id);
break;
case "whois":
sendWhois(id);
break;
default:
System.out.println("Erreur de commande");
break;
}
}
}

View File

@@ -1,17 +0,0 @@
package pr.tp2.udp.discovery;
public class TestDiscovery {
public static void main(String[] args) throws InterruptedException {
Runnable listener = () -> {
Discovery.listenAndReply();
};
new Thread(listener).start();
Discovery.sendWhois("051005022");
Discovery.sendIAM("tftp", "127.0.0.1:6969");
Thread.sleep(10000);
}
}

View File

@@ -3,33 +3,52 @@ package pr.tp2.udp.tftp;
import java.io.IOException;
import java.net.DatagramPacket;
import java.net.DatagramSocket;
import java.net.InetSocketAddress;
import java.net.SocketAddress;
public class TftpPutServeur {
public static void main(String[] args) {
// Attends sur le port 6969
try {
// Attends sur le port 6969
DatagramSocket socket = new DatagramSocket(6969);
// Boucle
// Boucle
while(true){
byte buffer[] = new byte[100];
// Reception du packet
DatagramPacket p = null;
// Reception du packet
DatagramPacket p = new DatagramPacket(buffer, buffer.length);
socket.receive(p);
// Affichage du packet
String requete = new String(buffer);
// Attention à ne pas afficher plus d'informations que nécessaire.
// Affichage du packet
System.out.println("requete : " + requete);
// Décodage du packet
decodeRequest(p);
// Attention à ne pas afficher plus d'informations que nécessaire.
//System.out.println("plus d'informations que nécessaire");
// Envoyer acquittement
// sendAck(server, /***/);
// Décodage du packet
decodeRequest(p);
// Envoyer acquittement
short seq = 2;
sendAck(socket,seq,new InetSocketAddress(p.getAddress(), p.getPort())); //TODO
}
}
catch (Exception e) {
}
}
public static void sendAck(DatagramSocket server, short seqNumber, SocketAddress dstAddr) throws IOException {
System.out.println("Send " + seqNumber + " to " + dstAddr);
// Construire le paquet avec les bonnes informations
byte[] ackBytes = "ack".getBytes();
DatagramPacket p = new DatagramPacket(ackBytes,ackBytes.length,dstAddr);
server.send(p);
// afficher le tableau de bytes envoyé