refactor/architecture #1

Closed
Xeon0X wants to merge 8 commits from refactor/architecture into main
4 changed files with 124 additions and 52 deletions
Showing only changes of commit d539259443 - Show all commits

View File

@@ -8,7 +8,7 @@ public class App {
public static void main(String[] args) {
System.out.println(new App().getGreeting());
MistralDirectAPI.main(new String[] {});
ClientHandler.main(new String[] {});
// MistralDirectAPI.main(new String[] {});
}
}

View File

@@ -0,0 +1,120 @@
package clientserver;
import java.net.DatagramPacket;
import java.net.DatagramSocket;
import java.net.InetAddress;
import java.net.InetSocketAddress;
public class ClientHandler {
static void main(String[] args) {
int port = 6666;
boolean running = true;
DatagramSocket socketServer = null;
while (running) {
try {
// 1 - Création du canal
socketServer = new DatagramSocket(null);
// 2 - Réservation du port
InetSocketAddress address = new InetSocketAddress(
"localhost",
port
);
socketServer.bind(address);
// 3 - Recevoir
byte[] recues = new byte[1024]; // tampon de réception
DatagramPacket receivedPacket = new DatagramPacket(
recues,
recues.length
);
socketServer.receive(receivedPacket);
Thread thread = new Thread(() -> createThread(receivedPacket));
thread.start();
} catch (Exception e) {
System.err.println(e);
}
}
socketServer.close();
}
public static void createThread(DatagramPacket packet) {
try {
InetAddress clientAddress = packet.getAddress();
int clientPort = packet.getPort();
System.out.println(
"Nouveau client : @" + clientAddress + ":" + clientPort
);
DatagramSocket socket = new DatagramSocket(); // Reserve new port
String response = "PORT:" + socket.getLocalPort();
byte[] envoyees; // tampon d'émission
envoyees = response.getBytes();
DatagramPacket packetToSend = new DatagramPacket(
envoyees,
envoyees.length,
clientAddress,
clientPort
);
socket.send(packetToSend);
} catch (Exception e) {
System.err.println(e);
}
}
static void scannerUDP(int startPort, int endPort) {
try {
for (int i = startPort; i < endPort; i++) {
try (DatagramSocket socket = new DatagramSocket(i)) {} catch (
Exception e
) {
System.out.println("Port n°" + i + " déjà occupé");
}
}
} catch (Exception e) {
System.out.println(e);
}
}
// public static void main(String[] args) {
// try {
// // 1 - Création du canal
// DatagramSocket socketServeur = new DatagramSocket(null);
// // 2 - Réservation du port
// InetSocketAddress adresse = new InetSocketAddress(
// "localhost",
// 6666
// );
// socketServeur.bind(adresse);
// byte[] recues = new byte[1024]; // tampon d'émission
// byte[] envoyees; // tampon de réception
// // 3 - Recevoir
// DatagramPacket paquetRecu = new DatagramPacket(
// recues,
// recues.length
// );
// socketServeur.receive(paquetRecu);
// InetAddress adrClient = paquetRecu.getAddress();
// int prtClient = paquetRecu.getPort();
// System.out.println(
// "Nouveau client : @" + adrClient + ":" + prtClient
// );
// // 4 - Émettre
// String reponse = "Serveur RX302 ready";
// envoyees = reponse.getBytes();
// DatagramPacket paquetEnvoye = new DatagramPacket(
// envoyees,
// envoyees.length,
// adrClient,
// prtClient
// );
// socketServeur.send(paquetEnvoye);
// // 5 - Libérer le canal
// socketServeur.close();
// } catch (Exception e) {
// System.err.println(e);
// }
// }
}

View File

@@ -1,11 +1,11 @@
package clientserver;
import java.io.FileInputStream;
import java.io.IOException;
import java.net.URI;
import java.net.http.HttpClient;
import java.net.http.HttpRequest;
import java.net.http.HttpResponse;
import java.io.FileInputStream;
import java.util.Properties;
public class MistralDirectAPI {
@@ -30,7 +30,7 @@ public class MistralDirectAPI {
{
"model": "mistral-medium",
"messages": [
{ "role": "user", "content": "Explain recursion like I'm five." }
{ "role": "user", "content": "Reverse turing test." }
]
}
""";

View File

@@ -1,48 +0,0 @@
package clientserver;
import java.net.DatagramPacket;
import java.net.DatagramSocket;
import java.net.InetAddress;
import java.net.InetSocketAddress;
public class Server {
static void scannerUDP(int startPort, int endPort) {
try {
for (int i = startPort; i < endPort; i++) {
try (DatagramSocket socket = new DatagramSocket(i)) {
} catch (Exception e) {
System.out.println("Port n°" + i + " déjà occupé");
}
}
} catch (Exception e) {
System.out.println(e);
}
}
public static void main(String[] args) {
try {
// 1 - Création du canal
DatagramSocket socketServeur = new DatagramSocket(null);
// 2 - Réservation du port
InetSocketAddress adresse = new InetSocketAddress("localhost", 6666);
socketServeur.bind(adresse);
byte[] recues = new byte[1024]; // tampon d'émission
byte[] envoyees; // tampon de réception
// 3 - Recevoir
DatagramPacket paquetRecu = new DatagramPacket(recues, recues.length);
socketServeur.receive(paquetRecu);
InetAddress adrClient = paquetRecu.getAddress();
int prtClient = paquetRecu.getPort();
System.out.println("Nouveau client : @" + adrClient + ":" + prtClient);
// 4 - Émettre
String reponse = "Serveur RX302 ready";
envoyees = reponse.getBytes();
DatagramPacket paquetEnvoye = new DatagramPacket(envoyees, envoyees.length, adrClient, prtClient);
socketServeur.send(paquetEnvoye);
// 5 - Libérer le canal
socketServeur.close();
} catch (Exception e) {
System.err.println(e);
}
}
}