salve,
mi sono avvicinato da poco alla programmazione java. Devo realizzare un rudimentale sistema p2p basato su server di indirizzamento per condivisione di file. Quindi ogni client si collega attraverso una socket a un server che è in attesa su una serversocket e per ogni richiesta di connesione lancia un thread che si occupa di creare una socket dedicata alla comunicazione con questo client e grazie alla quale attraverso opportuni output e input stream riceverà ad esempio la lista dei files presenti nel client e comunicherà la lista dei files globale. Questo procedimento è valido per ogni client che si connette al server.
Nel momento in cui uno dei client vuole scaricare uno dei files presenti nella lista dei files (all'interno della quale già è presente l'indirizzo del relativo client per ogni file) si connette direttamente a tale client.
La prima domanda è se questo client che riceve la richiesta di trasferimento, attende e trasferisce poi, attraverso la stessa socket che ha attaccata al server o ne deve per forza creare una nuova, cosa che secondo me comporterebbe che tale client abbia già attiva anche una serversocket che agisce come nel server per ogni richiesta di trasferimento.
Per il resto il funzionamento è quello sopra descritto?
grazie in anticipo a tutti