This commit is contained in:
trochas
2025-02-25 10:12:25 +01:00
5 changed files with 128 additions and 100 deletions

90
.gitignore vendored
View File

@@ -231,4 +231,92 @@ Network Trash Folder
Temporary Items Temporary Items
.apdisk .apdisk
# End of https://www.gitignore.io/api/osx,java,linux,maven,eclipse,intellij ### Intellij+all ###
# Covers JetBrains IDEs: IntelliJ, RubyMine, PhpStorm, AppCode, PyCharm, CLion, Android Studio, WebStorm and Rider
# Reference: https://intellij-support.jetbrains.com/hc/en-us/articles/206544839
# User-specific stuff
.idea/**/workspace.xml
.idea/**/tasks.xml
.idea/**/usage.statistics.xml
.idea/**/dictionaries
.idea/**/shelf
# AWS User-specific
.idea/**/aws.xml
# Generated files
.idea/**/contentModel.xml
# Sensitive or high-churn files
.idea/**/dataSources/
.idea/**/dataSources.ids
.idea/**/dataSources.local.xml
.idea/**/sqlDataSources.xml
.idea/**/dynamic.xml
.idea/**/uiDesigner.xml
.idea/**/dbnavigator.xml
# Gradle
.idea/**/gradle.xml
.idea/**/libraries
# Gradle and Maven with auto-import
# When using Gradle or Maven with auto-import, you should exclude module files,
# since they will be recreated, and may cause churn. Uncomment if using
# auto-import.
# .idea/artifacts
# .idea/compiler.xml
# .idea/jarRepositories.xml
# .idea/modules.xml
# .idea/*.iml
# .idea/modules
# *.iml
# *.ipr
# CMake
cmake-build-*/
# Mongo Explorer plugin
.idea/**/mongoSettings.xml
# File-based project format
*.iws
# IntelliJ
out/
# mpeltonen/sbt-idea plugin
.idea_modules/
# JIRA plugin
atlassian-ide-plugin.xml
# Cursive Clojure plugin
.idea/replstate.xml
# SonarLint plugin
.idea/sonarlint/
# Crashlytics plugin (for Android Studio and IntelliJ)
com_crashlytics_export_strings.xml
crashlytics.properties
crashlytics-build.properties
fabric.properties
# Editor-based Rest Client
.idea/httpRequests
# Android studio 3.1+ serialized cache file
.idea/caches/build_file_checksums.ser
### Intellij+all Patch ###
# Ignore everything but code style settings and run configurations
# that are supposed to be shared within teams.
.idea/*
!.idea/codeStyles
!.idea/runConfigurations
# End of https://www.toptal.com/developers/gitignore/api/intellij+all

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,28 +3,22 @@ package pr.tp2.udp.tftp;
import java.io.IOException; import java.io.IOException;
import java.net.DatagramPacket; import java.net.DatagramPacket;
import java.net.DatagramSocket; import java.net.DatagramSocket;
import java.net.InetAddress;
import java.net.ServerSocket;
public class TftpDecode { public class TftpDecode {
public static void main(String[] args) throws IOException { public static void main(String[] args) throws IOException {
int portTFTP = 7777;
int portServeur = 6969; int portServeur = 6969;
InetAddress ipServeur = InetAddress.getByName("localhost"); DatagramSocket dSocket = null;
try { try {
// Attends sur le port 6969 // Attends sur le port 6969
DatagramSocket dSocket = new DatagramSocket(portTFTP); dSocket = new DatagramSocket(portServeur);
// Boucle // Boucle
while (true) { while (true) {
byte[] buffer = new byte[512]; byte[] buffer = new byte[21];
// Reception du packet // Reception du packet
DatagramPacket reception = new DatagramPacket(buffer, buffer.length); DatagramPacket reception = new DatagramPacket(buffer, buffer.length);
dSocket.receive(reception); dSocket.receive(reception);
// Affichage du packet // Affichage du packet
System.out.println(new String(buffer)); affiche(buffer);
// Attention à ne pas afficher plus d'informations que nécessaire. // Attention à ne pas afficher plus d'informations que nécessaire.
// Décodage du packet // Décodage du packet
@@ -32,6 +26,8 @@ public class TftpDecode {
} }
} catch (IOException e) { } catch (IOException e) {
e.printStackTrace(); e.printStackTrace();
} finally {
dSocket.close();
} }
} }