3 import java.rmi.Naming;
4 import java.rmi.registry.LocateRegistry;
5 import java.rmi.registry.Registry;
6 import java.rmi.server.UnicastRemoteObject;
8 import java.io.FileInputStream;
9 import java.io.DataInputStream;
10 import java.io.FileOutputStream;
11 import java.io.DataOutputStream;
12 import javax.swing.JOptionPane;
13 import javax.swing.JFileChooser;
14 import javax.swing.table.DefaultTableModel;
30 public static boolean DBG =
true;
47 public static void main(String[] args)
throws java.rmi.RemoteException{
58 registry = LocateRegistry.getRegistry();
59 registry.rebind(
"C2C_server",obj);
60 Naming.rebind(
"C2C_server", obj);
100 @SuppressWarnings(
"static-access")
104 return obj.getClientHost();
120 return "CLIENT SIDE: SERVER ON!";
132 public byte[]
getFile(String k, String v, String name, String path)
144 File remf =
new File(path+name);
151 long size = remf.length();
158 byte content[] =
new byte[(int)size];
162 DataInputStream remfr =
new DataInputStream(
new FileInputStream(remf));
184 public boolean deleteFile(String k, String v, String name, String path)
196 File remf =
new File(path+name);
205 boolean ris = remf.delete();
208 int numrow = model.getRowCount();
209 for(
int i=0; i< numrow; i++)
210 if(((model.getValueAt(i, 0)).toString().equals(name))&&((model.getValueAt(i, 1)).toString().equals(path))){
212 model.fireTableRowsDeleted(i, i);
236 @SuppressWarnings(
"static-access")
237 public
boolean sendFile(String k, String v, byte[] content, String name){
255 JFileChooser f =
new JFileChooser(
".");
256 f.setSelectedFile(
new File(name));
258 int r = f.showSaveDialog(null);
260 if (r != f.APPROVE_OPTION)
267 File fs = f.getSelectedFile();
271 r = JOptionPane.showConfirmDialog(null,
"Overwrite file?",
"File already exist",1,JOptionPane.YES_NO_OPTION);
273 if(r!=JOptionPane.YES_OPTION)
283 DataOutputStream fw =
new DataOutputStream(
new FileOutputStream(fs));
310 public void addAuthUser(String myu, String myp, String authu, String authp)
throws java.rmi.RemoteException{
Classe che permette la configurazione di tutto il programma in base alle specifiche esigenze dell'ute...
Classe che implementa metodi vari di utilita' generale.
Classe che implementa il servizio Client.
static boolean isMyPswd(String p)
Metodo che verifica se la stringa passata corrisponde alla password del client.
static boolean open_upload_conn()
Permette la lettura della varibile relativa in modo sicuro.
C2C_server()
Costruttore della classe C2C_server.
boolean deleteFile(String k, String v, String name, String path)
Funzione che cancella il file indicato tramite name e path.
String clientIP()
Funzione che ritorna il valore dell'host del client.
static boolean DBG
Variabile boolean per attivare il degug.
boolean authorize(String k, String v)
Metodo che controlla se (k,v) fornite dal client sono gia' presenti dell'hashtable.
static long r_filemaxsizetorecv()
Permette la lettura della varibile relativa in modo sicuro.
static void main(String[] args)
Main che crea un'istanza di RMIRegistry se non e' gia' stata creata da ServerRMI e registra le sue fu...
byte [] getFile(String k, String v, String name, String path)
Funzione che restituisce il file chiesto sottoforma di array di byte.
void addAuthUser(String myu, String myp, String authu, String authp)
Funzione utilizzata da ServerRMI per inviare a C2C_server le coppie di identificazione (k...
static int r_rmiregport()
Permette la lettura della varibile relativa in modo sicuro.
static boolean isMyUser(String u)
Metodo che verifica se la stringa passata corrisponde allo username del client.
static boolean r_serverOpen()
Permette la lettura della varibile relativa in modo sicuro.
static Hashtable cauth
Hashtable contenente le coppie (k,v) fornite dal server, per autenticare un client che vuole accedere...
String serverOn()
Funzione di test che non necessita di autorizzazione per verificare se il server e' attivo...
static boolean close_upload_conn()
Permette la lettura della varibile relativa in modo sicuro.
Classe che implementa il server RMI C2C_server e le funzioni messe a disposizione dall'interfaccia C2...
boolean sendFile(String k, String v, byte[] content, String name)
Funzione che riceve il file inviato.
static void logClient(String data)
Scrive i dati in input sul file di log del Client (se questo esiste valido)