import java.net.*;
import java.io.*;
import java.util.Date;
class serverFTP
{
private static String LogFile="Azioni.log";
private static String workDir="c:\\Ftpdir";
public static void main(String args[])
{
//Socket del server FTP
ServerSocket
socket;
//porta utilizzata dal
protocollo FTP per la comunicazione dei comandi
final int portaFTP_PI=21;
//Scrittore del file di
log
FileWriter
scrittoreLog;
Date
data=new Date();
//File che gestisce la
directory di lavoro
File workingPath;
String
lista_file[]=new String[60];
String
temp_lista[]=new String[60];
//Test sugli argomenti:
bisogna passare il nome del coordinatore
if(args.length!=1)
{
System.out.println("Uso: severFTP
<coordinatore>");
System.exit(1);
}
//Test sulla esistenza
della directory
workingPath=new File(workDir);
if(!workingPath.exists())
{
System.err.println("Directory
"+workDir+"
inesistente");
System.exit(1);
}
temp_lista=workingPath.list();
for(int i=0;i<temp_lista.length;i++)
{
if(temp_lista[i]==null)break;
lista_file[i]=temp_lista[i];
}
registramiFTP register=new registramiFTP(args[0],lista_file);
register.start();
try
{
socket=new ServerSocket(portaFTP_PI);
System.out.println("Server in
ascolto sulla porta "+socket.getLocalPort());
System.out.println(data.toString());
scrittoreLog=new FileWriter(LogFile,true);
scrittoreLog.write("\r\nServer
attivato alle "+data.toString()+"\r\n");
scrittoreLog.write("In ascolto per
eventuali richieste\r\n");
scrittoreLog.flush();
scrittoreLog.close();
try
{
while(true)
{
//processo che gestisce le connessioni
new Thread(new
serverRichiesteFTP(socket.accept(),register.serverReg,args[0])).start();
}
}
catch(Exception e)
{
System.out.println("Connessione non
accettata!");
System.err.println(e);
}//CATCH 2
}
catch(Exception e)
{
System.out.println("Errore durante
l\' avvio del server FTP");
System.err.println(e);
System.exit(1);
}//CATCH 1
}//MAIN
}//class serverFTP