private void fileTransfertServer()
	{
		
		Socket		l_newClient = null;
		
		this.ctrl_fileServerActivation = true;
		
		while( this.ctrl_fileServerActivation )
		{
			try 
			{
				l_newClient = this.ctrl_srvSock.accept();
				l_newClient.setSoTimeout( (int) this.ctrl_tcpTransfertTimeout );
				
				ctrl_downloader.ReSet( l_newClient, 
						this.ctrl_fileBoxDirectory );
				
				if( ctrl_downloader.getHeader() ) // a timeout can occur
				{
					//ASK TO USER !!
					String ll_clientName = addrToName( l_newClient.getInetAddress() );
					String ll_fileName   = ctrl_downloader.getFilenameFromHeader();
					String ll_fileSize   = Long.toString( ctrl_downloader.getFileSizeFromHeader());
					
					Logger.notify("New File Transfert Request from " + ll_clientName + " (" + ll_fileName + "," + ll_fileSize + " Bytes )");
					
					if( UserInteract.askuser(  	"<html><strong>" + ll_clientName + "</strong> wants to send you a file : </html>\n\n" + 
												"<html>Name\t : <strong><i>\"" + ll_fileName + "\"</i></strong>.</html>\n" +
												"<html>Size\t : <strong>" + ll_fileSize + "</strong> octets.</html>\n\n" +
												"<html><center>Will you accept this request ?</center></html>","New request !") )
					{
						ctrl_downloader.accept();
						ctrl_trayinter.InformationMessage("Download of " + ll_fileName + " started.");
						
						if( ctrl_downloader.getData() ) // a timeout can occur
						{
							// SUCCESS DOWNLOAD
							Logger.notify("Download is ok !");
							ctrl_trayinter.InformationMessage("Download of " + ll_fileName + " successful !");
						}
						else
						{
							// FAILURE DOWNLOAD
							Logger.error("Download failed...");
							ctrl_trayinter.ErrorMessage("Download of " + ll_fileName + " failed...");
						}
					}
					else
					{
						ctrl_downloader.refuse();
					}
				}
				else
				{
					Logger.error("Cannot read the header...");
				}
				
				l_newClient.close();
			} 
			catch ( SocketTimeoutException e)
			{
				//Logger.exception(e.toString());;
				// No answer from client
				Logger.error("Client timed out...");
				
			}
			catch (SocketException e)
			{
				if( this.ctrl_fileServerActivation)
				{
					Logger.exception(e.toString());;
					Logger.error("Socket error...");
				}
				else
				{
					/* Nothing to do : server was intentionally closed */
				}
			}
			catch (IOException e) 
			{
				// TODO Auto-generated catch block
				Logger.exception(e.toString());;
				Logger.error("I/O Fatal error...");
			}
			finally
			{
				// Closing the socket is not compulsory, thanks to garbage collector
			}

		}
	}