Inserimento primi esempi

This commit is contained in:
2023-02-01 16:58:14 +01:00
parent 65e7a35f01
commit 1f84919978
71 changed files with 10385 additions and 0 deletions

View File

@@ -0,0 +1,112 @@
package com.mirimatcode;
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.io.PrintWriter;
import java.net.ServerSocket;
import java.net.Socket;
import java.net.UnknownHostException;
public class USocket {
/*
Lato server
*/
/**
* Inizializza il Socket lato server e ritorna il Socket lato client una volta ricevuto
* @param porta porta di ascolto
* @return istanza del client ricevuto
* @throws IOException
*/
private static Socket initServer(int porta) throws IOException {
ServerSocket server = new ServerSocket(porta);
System.out.println("Server in ascolto");
Socket client = server.accept();
System.out.println("Ricevuto un pacchetto");
server.close();
return client;
}
/**
* Mette il Socket lato server in ascolto e ritorna il messaggio una volta ricevuto
* @param porta porta di ascolto
* @return messaggio ricevuto
* @throws IOException
*/
public static String listenString(int porta) throws IOException {
Socket client = initServer(porta);
String messaggio = new BufferedReader(new InputStreamReader(client.getInputStream())).readLine();
System.out.println("Ottenuto il messaggio");
client.close();
return messaggio;
}
/**
* Mette il Socket lato server in ascolto, risponde con un messaggio al mittente e restituisce il messaggio ricevuto
* @param porta porta di ascolto
* @param risposta messaggio che si vuole trasmettere come risposta
* @return messaggio ricevuto
* @throws IOException
*/
public static String listenAndReplyString(int porta, String risposta) throws IOException {
Socket client = initServer(porta);
String messaggio = new BufferedReader(new InputStreamReader(client.getInputStream())).readLine();
String ip = client.getInetAddress().getHostAddress();
client.close();
System.out.println("Mi appresto a rispondere a " + ip);
writeString(ip, porta, risposta);
return messaggio;
}
/*
Lato Client
*/
/**
* Prepara un Socket lato client e trasmette il messaggio all'indirizzo IP specificato
* @param ip IP del destinatario del messaggio
* @param porta porta del destinatario
* @param messaggio messaggio che si vuole trasmettere
* @throws UnknownHostException
* @throws IOException
*/
public static void writeString(String ip, int porta, String messaggio) throws UnknownHostException, IOException {
Socket client = new Socket(ip, porta);
BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(client.getOutputStream()));
PrintWriter out = new PrintWriter(bw, true);
out.println(messaggio);
out.close();
client.close();
}
/**
* Prepara un Socket lato client, trasmette il messaggio all'indirizzo IP specificato e resta in ascolto di una risposta dal destinatario
* @param ip IP del destinatario del messaggio
* @param porta porta del destinatario
* @param messaggio messaggio che si vuole trasmettere
* @return messaggio ricevuto dal destinatario come risposta
* @throws UnknownHostException
* @throws IOException
*/
public static String writeAndListenString(String ip, int porta, String messaggio) throws UnknownHostException, IOException {
Socket client = new Socket(ip, porta);
BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(client.getOutputStream()));
PrintWriter out = new PrintWriter(bw, true);
out.println(messaggio);
String testo = listenString(porta);
out.close();
client.close();
return testo;
}
}