From 8db1dfaf288f2d71d3a940336fc0a5c145394b53 Mon Sep 17 00:00:00 2001 From: Giovanni Di Grezia Date: Tue, 21 Oct 2014 13:51:19 +0200 Subject: [PATCH] Primo esercizio sui socket --- .DS_Store | Bin 0 -> 6148 bytes socket_test/.DS_Store | Bin 0 -> 6148 bytes socket_test/test/Record.java | 41 +++++++++++++ socket_test/test/client.java | 45 ++++++++++++++ socket_test/test/server.java | 44 ++++++++++++++ .../test/server_request_management.java | 56 ++++++++++++++++++ 6 files changed, 186 insertions(+) create mode 100644 .DS_Store create mode 100644 socket_test/.DS_Store create mode 100644 socket_test/test/Record.java create mode 100644 socket_test/test/client.java create mode 100644 socket_test/test/server.java create mode 100644 socket_test/test/server_request_management.java diff --git a/.DS_Store b/.DS_Store new file mode 100644 index 0000000000000000000000000000000000000000..03eb6e51e9113f74a4a2c25a5812ecfb75d8818f GIT binary patch literal 6148 zcmeHK!EVz)5Zz4!*eU{7;y`bEa(=eDI)%)XJt`0{r+#++3McA z|G@Ko|DpfrvHu|+>sj0+&9ojSllS!NP11~0XTR0Dyt0$@U6Id5!IOPmHAzwB6O&wI zIYN#Oiz?Hzp`KP*eH2^gVUaasGpTc6SK;N|O7pMSo%{POkNkDr!ziBHtXj>9GVg0Y5ztUf7IY=KhOgnWu8RjI2}L@XCr zPRz&*FaylMrZV8}D{p&KUy$F68DIwf8v}GdC@5j%u(fEe4h*IR0CwRv0-JgX%25s@ zhpk0Cfk>MQw5igy7}BQ0uUuT@u(fE@g>=n_bSq2Op-8hj=2s?M$jBm(%m6cRlL6}e zAOY3?SL^$K6T|~Ezzp0?24wdjJ{V$euC}i1l4`Aj9z#heuC;iT0>hMI#8N4K3N-@1 XA_EvXY%RhA;XeX~1|FD!f6BmLv}t7E literal 0 HcmV?d00001 diff --git a/socket_test/.DS_Store b/socket_test/.DS_Store new file mode 100644 index 0000000000000000000000000000000000000000..ca5d0e6e71945129431efcf086d0e96e397046d8 GIT binary patch literal 6148 zcmeH~F^f4mh3n7#7gpu zObo#Gk7);t0M>LTwjO3?%m>_Y#trxB_H+5ZUN2sxtvcW-eZ*`(w*@I61*Cu!kOER* zK?>wCzTPb8ne-@9Kng5F0slS}y0a!*XM8#sVgw)umczJ?S%NHHAZxO9vO=?*9xPie z#t^SZJ6ZC&nrxlD9hSp~<(h|QedXQN6$w;|Bv*)=KooXQYjz> z{+R+c98QNlUn 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; + + + + +}