1 2 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
|
package serveur;
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileWriter;
import java.io.IOException;
import java.io.ObjectInputStream;
import java.io.ObjectOutputStream;
import java.net.ServerSocket;
import java.net.Socket;
public class Serveur{
private ServerSocket srv;
private final int port;
public Serveur(int port) throws IOException{
this.port=port;
srv = new ServerSocket(port);
}
public void close() throws IOException{
srv.close();
}
public boolean estConnecte(){
return true;
}
public void acceptSrv() throws IOException{
this.srv.close();
System.out.println("srv fermer");
this.srv = new ServerSocket(this.port);
}
public void service() throws IOException, ClassNotFoundException{
//connexion entre client/serveur
System.out.println("srv accept en attente");
Socket clt=this.srv.accept();
System.out.println("serveur ligne 34");
ObjectOutputStream output = new ObjectOutputStream(clt.getOutputStream());
ObjectInputStream input= new ObjectInputStream(clt.getInputStream());
//recupere le choix de l'action réalisé
String datas = input.readObject().toString();
String infos [] = datas.split ("_") ;
int mode =Integer.parseInt(infos[0]);
switch (mode)
{
case 1 :
String nom = infos[1];
String id= infos[2];
envoiTuple(nom,id,output);
break;
default :
System.out.println("erreur");
}
input.close();
clt.close();
output.close();
System.out.println("input,clt, output fermer");
}
public boolean envoiTuple(String nom, String id, ObjectOutputStream output) throws IOException{
//on va chercher le chemin et le nom du fichier et on me tout ca dans un String
String p=String.valueOf(this.port);
String adressedufichier = "C:\\Users\\jerome\\Downloads\\workspace\\serveur\\serveur"+p+".txt";
try{
BufferedWriter outputFichier = new BufferedWriter(new FileWriter(adressedufichier, true));
outputFichier.write(nom+"_"+id);
outputFichier.flush();
outputFichier.close();
envoiConfirmation(output,true," enregistrement réussi");
}
catch(IOException ioe){
envoiConfirmation(output,false," fail erreur");
System.out.print("Erreur : ");
ioe.printStackTrace();
}
return false;
}
public boolean testConnexion(ObjectInputStream input, ObjectOutputStream output) throws IOException{
envoiConfirmation(output,false,"Mode non implémenté.");
return false;
}
public void envoiConfirmation(ObjectOutputStream output, boolean conf, String msg) throws IOException{
System.out.println("envoi de conf: "+conf);
output.writeBoolean(conf);
System.out.println("envoi de msg: "+msg);
output.writeUTF(msg);
output.flush();
}
} |
Partager