| 12
 3
 4
 5
 6
 7
 8
 9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 33
 34
 35
 36
 37
 38
 39
 40
 41
 42
 43
 44
 45
 46
 47
 48
 49
 50
 51
 52
 53
 54
 55
 56
 57
 58
 59
 60
 61
 62
 63
 64
 65
 66
 67
 68
 69
 70
 71
 72
 73
 74
 75
 76
 77
 78
 79
 80
 81
 82
 83
 84
 85
 86
 87
 88
 89
 90
 91
 92
 93
 94
 95
 96
 97
 98
 99
 100
 101
 102
 103
 104
 105
 106
 107
 108
 109
 110
 111
 112
 113
 114
 115
 116
 117
 118
 119
 120
 121
 122
 123
 124
 125
 126
 127
 128
 129
 130
 131
 132
 133
 134
 135
 136
 137
 138
 139
 140
 141
 142
 143
 144
 145
 146
 147
 148
 149
 150
 151
 152
 153
 154
 155
 156
 157
 158
 159
 160
 161
 162
 163
 164
 165
 166
 167
 168
 169
 170
 171
 172
 173
 174
 175
 176
 177
 178
 179
 180
 181
 182
 183
 184
 185
 186
 187
 188
 
 |  
package debugserver;
import java.awt.*;
 
import javax.swing.*;
 
import abricotshopmanager.AbricoshopManager;
 
import java.net.*;
import java.io.*;
import java.text.DateFormat;
import java.util.*;
 
 
 
 
public class Server {
  final static int PORT = 4321;
 
  static Socket service;
 
 
  public Server () { 
 
	  init();
  }
 
 
 
 
  private void init() {
 
 
    	Dimension dimScrean = Toolkit.getDefaultToolkit().getScreenSize();
    	JFrame server = new JFrame("server");
    	server.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
    	server.setSize(150,0);
    	// Mettre la fenêtre en bas à droite
    	server.setLocation(dimScrean.width - server.getWidth(),dimScrean.height - server.getHeight());
 
    	server.setVisible(true);
      // préparation du serveur
      // réseau
 
	  try {
 
	  ServerSocket ecoute = new ServerSocket(PORT);
 
	  while (true) {
	        service = ecoute.accept();
	        Thread serviceThread = new Thread (new ServiceThread() );
	        serviceThread.start();
	        serviceThread.setName("connect thread");
	      }      
 
 
      }
 
 
    catch (BindException be) {
    	System.err.println("Le serveur a quitter car un autre et déjà en utilisation");
    	System.exit(-1);
    }  
    catch (IOException ioe) {
      System.err.println(("Problème au niveau du serveur : "+ ioe.getMessage()) + "il est : "+formateDate() );
      ioe.printStackTrace();
    }
  }
 
 
 
 
 
/**
 * Cette méthode créer et formate la date du jour
 @return String
 */
 static String formateDate() {
	  TimeZone tz =  TimeZone.getTimeZone("Europe/Paris");
 
  Calendar calendar = Calendar.getInstance(tz);
  Date date = new Date();
      TimeZone.setDefault(TimeZone.getTimeZone("Europe/Paris"));
      calendar.setTime(date);
      DateFormat df = DateFormat.getDateInstance(DateFormat.SHORT, Locale.FRENCH);
 
	return ("Report_"+df.format(date)+" "+calendar.get(Calendar.HOUR_OF_DAY)+'_'+calendar.get(Calendar.MINUTE)+'_'+ calendar.get(Calendar.SECOND)+".log").replace('/', '_');
 
 
}
 
 
  public static void main (String [] args) {
    new Server();
  }
 
}
class ServiceThread implements Runnable {
 
	public void run() {
		// TODO Auto-generated method stub
		 BufferedReader rd;
		 String message;
		 try {
			 rd = new BufferedReader(new InputStreamReader(Server. service.
			getInputStream()));
			 System.out.println("Nouvelle connection à : "+Server.formateDate());
 
			 while ( (message = rd.readLine()) != null) {
				 writeInfile(message);
 
 
	  }
	} 
		 catch (IOException ioe) {
			 System.out.println("Le client a quitté : "+Server. formateDate());   
			 if (! ioe.getMessage().contains("reset")) {
				 System.err.println("L'erreur suivante s'est produite à  :"+Server.formateDate()+" \n le message est :"+ ioe.getMessage());
				 ioe.printStackTrace();  
		 	}
		}
	}
 
	private synchronized void writeInfile (String message) {
				 String messgage = null;
 
				File fileErrorOutput = new File (Server.formateDate());
				FileOutputStream fileError = null;
				PrintStream fosErrorSender = null;
 
		try {
			fileError = new FileOutputStream(fileErrorOutput,true);
			fosErrorSender = new PrintStream(fileErrorOutput);
 
	          System.out.println(new String("Nouveau message  +" +
                      fileErrorOutput.getName()));
fosErrorSender.println(message);
System.out.println(message);
fosErrorSender.flush();
		}
		catch (IOException ioe) {
			System.err.println("Imposible d'écrire dans le fichier de log "+fileErrorOutput.getName() + "il est : "+formateDate() + "Message : "+ioe.getMessage());
			ioe.printStackTrace();
		}
 
		finally {
			try {
				fosErrorSender.close();
 
				fileError.close();
 
				if (fileErrorOutput.length() == 0) { // aucune erreur n'est survenue
					fileErrorOutput.delete();
					System.out.println("Le fichier a été supprimé");
					}
				}
			catch (FileNotFoundException fne) {
				System.err.println("Le fichier : " + fileErrorOutput.getName() +" N'a pas été trouvé dans le répertoire du serveur.  Il est :" + Server.formateDate()+ "Message : "+fne.getMessage() );
			}
			catch (IOException ioe) {
				System.err.println("Un problème est survenu lors de l'écriture dans le ficher : "+fileErrorOutput.getName());
				ioe.getStackTrace();
				}
		}	
 
 
	}
 
    public static String formateDate() {
  		  TimeZone tz =  TimeZone.getTimeZone("Europe/Paris");
 
  	  Calendar calendar = Calendar.getInstance(tz);
  	  java.util.Date date = new java.util.Date();
 
  	      TimeZone.setDefault(tz);
 
  	      calendar.setTime(date);
 
  	      DateFormat df = DateFormat.getDateInstance(DateFormat.SHORT, Locale.FRENCH);
  	      if (AbricoshopManager.isDebug()) {
  			   System.out.println("Retourner une date formatée.");
  		   }
 
  		return (df.format(date)+" "+calendar.get(Calendar.HOUR_OF_DAY)+'_'+calendar.get(Calendar.MINUTE)+'_'+ calendar.get(Calendar.SECOND));
 
 
  	}
} | 
Partager