1)2)codice:public class MagServer extends Thread { public static Map fileLock = new HashMap(); private Socket client; ...Stessa identica cosa per quanto riguarda la parte di modifica dei file.codice:if (comando.equals("A")) { String nomeFile = ....; //il client deve dirti quale file vuole andare a vedere if(MagServer.fileLock.get(nomeFile) { //implementa il comportamento dell'applicazione //se il file e' bloccato (ad esempio, rispondi con un errore) } else { //qui c'è il codice di lettura del file pippo.txt e poi invierà il contenuto al client }
3) A te serve avere l'elenco dei possibili files che il client puo' richiedere di modificare/visualizzare per riempire la mappa fileLock all'inizio (con entries <String nomefile, Boolean true/false>). Magari, piuttosto che creare un file di testo che puo' essere scomodo o difficilmente mantenibile, puoi ricavare l'elenco dei files direttamente "guardando" nel file system e tirando fuori l'elenco dei files presenti in una determinata cartella (e/o che hanno un certo nome, e/o che hanno una certa estensione, ecc. ecc.).
Volendo puoi pensare anche ad un sistema di refresh della mappa in modo che si accorga di eventuali files che vengono aggiunti o rimossi dal sistema (anche da processi esterni alla tua applicazione).

Rispondi quotando