Inserimento primi esempi
This commit is contained in:
112
USocket/src/com/mirimatcode/USocket.java
Normal file
112
USocket/src/com/mirimatcode/USocket.java
Normal 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;
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user