diff --git a/.DS_Store b/.DS_Store new file mode 100644 index 0000000..03eb6e5 Binary files /dev/null and b/.DS_Store differ diff --git a/socket_test/.DS_Store b/socket_test/.DS_Store new file mode 100644 index 0000000..ca5d0e6 Binary files /dev/null and b/socket_test/.DS_Store differ diff --git a/socket_test/test/Record.java b/socket_test/test/Record.java new file mode 100644 index 0000000..48d18e9 --- /dev/null +++ b/socket_test/test/Record.java @@ -0,0 +1,41 @@ +package socket_test.test; + +import java.io.Serializable; + +/** + * Created with xgiovio.macbookair. + * User: xgiovio + * Date: 21/10/14 + * Time: 13:20 + */ +public class Record implements Serializable { + + private static final long serialVersionUID = 9090L; + + public Record (String in_nome, String in_cognome){ + + nome = in_nome; + cognome = in_cognome; + + + } + + public String getNome() { + return nome; + } + + public void setNome(String nome) { + this.nome = nome; + } + + public String getCognome() { + return cognome; + } + + public void setCognome(String cognome) { + this.cognome = cognome; + } + + private String nome; + private String cognome; +} diff --git a/socket_test/test/client.java b/socket_test/test/client.java new file mode 100644 index 0000000..85c75ce --- /dev/null +++ b/socket_test/test/client.java @@ -0,0 +1,45 @@ +package socket_test.test; + +import com.sun.corba.se.pept.encoding.OutputObject; + +import java.io.IOException; +import java.io.ObjectOutputStream; +import java.net.ServerSocket; +import java.net.Socket; +import java.util.logging.Logger; + +/** + * Created with xgiovio.macbookair. + * User: xgiovio + * Date: 21/10/14 + * Time: 12:31 + */ +public class client { + + private static final Logger log = Logger.getLogger(client.class.getName()); + + + public static void main (String[] arg){ + + + try { + Socket sock = new Socket("localhost", 60000); + log.info("Connessione a localhost 60000"); + + ObjectOutputStream out = new ObjectOutputStream(sock.getOutputStream()); + Record r = new Record("Mario", "Rossi"); + log.info("inviando Mario Rossi al server"); + out.writeObject(r); + + + + + } catch (IOException e) { + e.printStackTrace(); + } + + + } + + +} diff --git a/socket_test/test/server.java b/socket_test/test/server.java new file mode 100644 index 0000000..5e9d990 --- /dev/null +++ b/socket_test/test/server.java @@ -0,0 +1,44 @@ +package socket_test.test; + +import java.io.IOException; +import java.net.ServerSocket; +import java.net.Socket; +import java.util.HashMap; +import java.util.logging.Logger; + +/** + * Created with xgiovio.macbookair. + * User: xgiovio + * Date: 21/10/14 + * Time: 12:31 + */ +public class server { + + private static final Logger log = Logger.getLogger(socket_test.test.server.class.getName()); + + public static void main (String[] arg){ + + + try { + ServerSocket open = new ServerSocket(60000); + log.info("Aperto socket di ascolto su porta 60k"); + final HashMap database = new HashMap(); + + for(;true;){ + Socket accept = open.accept(); + log.info("Accettata richiesta"); + Thread request_management_thread = new Thread(new server_request_management(accept,database)); + log.info("Richiesta inoltrata a thread"); + request_management_thread.run(); + log.info("Waiting on port 60k"); + } + + } catch (IOException e) { + e.printStackTrace(); + } + + + } + + +} diff --git a/socket_test/test/server_request_management.java b/socket_test/test/server_request_management.java new file mode 100644 index 0000000..790fe1a --- /dev/null +++ b/socket_test/test/server_request_management.java @@ -0,0 +1,56 @@ +package socket_test.test; + +import java.io.IOException; +import java.io.ObjectInputStream; +import java.net.Socket; +import java.util.HashMap; +import java.util.logging.Logger; + +/** + * Created with xgiovio.macbookair. + * User: xgiovio + * Date: 21/10/14 + * Time: 13:00 + */ +public class server_request_management implements Runnable{ + + + private static final Logger log = Logger.getLogger(server_request_management.class.getName()); + public server_request_management (Socket in, HashMap in_h){ + sock = in; + hash = in_h; + } + + + @Override + public void run() { + log.info("Gestendo richiesta"); + try { + ObjectInputStream in = new ObjectInputStream(sock.getInputStream()); + Record r = (Record) in.readObject(); + if (r.getNome()!= null && r.getCognome()!= null){ + synchronized (hash) { + hash.put(r.getNome(), r); + } + log.info("Aggiungendo " + r.getNome() + " " + r.getCognome() + " al database"); + } + + + + } catch (IOException e) { + e.printStackTrace(); + } catch (ClassNotFoundException e) { + e.printStackTrace(); + } + //operations on socket + log.info("Terminata gestione"); + } + + + final private Socket sock; + final private HashMap hash; + + + + +}