// Toutes les tâches utilisent l'interface Runnable
public class Serveur implements Runnable
{
/** le groupe de tâches */
ExecutorService es;
/** socket du serveur pour attendre les requêtes en provenance des clients */
ServerSocket sockserv = null;
/** objet de communication entre le client et le serveur */
ChaineServCli chaine = null;
/**
* constructeur
* @param es groupe de tâches
*/
public Serveur(ExecutorService es)
{
this.es = es;
try
{
sockserv = new ServerSocket (6020);
}
catch (IOException ex) { }
}
public void run()
{
int nb_clients = 0;
System.out.println("Serveur demarré!");
try
{
while (true)
{
Socket sockcli = sockserv.accept();
nb_clients++;
System.out.println("Connexion établie : "+nb_clients+"ème client");
chaine = new ChaineServCli(es, sockcli);
es.execute(chaine);
}
}
catch (IOException ex) { }
}
public static void main (String args[])
{
ExecutorService es = Executors.newFixedThreadPool(10);
Serveur serv = new Serveur(es);
es.execute(serv);
}
}
public class Client implements Runnable
{
/** le groupe de tâches */
ExecutorService es;
/** socket pour communiquer avec le client */
Socket sockcli = null;
/**
* constructeur
* @param es groupe de tâches
*/
public Client (ExecutorService es)
{
this.es = es;
}
private int connexion(String url)
{
try
{
sockcli = new Socket (url, 6020);
}
catch (IOException ex)
{ return -1; }
if(sockcli.isConnected())
return 1;
else
return 0;
}
public void run ()
{
boolean boucle = true;
while(boucle)
{
switch(connexion("127.0.0.1"))
{
case 1 :
System.out.println("Connecté");
break;
default :
boucle = false;
break;
}
}
}
public static void main (String args[]) throws Exception
{
ExecutorService es = Executors.newFixedThreadPool(3);
Client client = new Client(es);
es.execute(client);
}
}
public class ChaineServCli implements Runnable
{
/** le groupe de tâches */
ExecutorService es;
/** socket pour communiquer avec le client */
Socket sockcli = null;
/**
* constructeur
* @param es groupe de tâches
* @param sockcli socket pour communiquer avec le client
*/
public ChaineServCli (ExecutorService es, Socket sockcli)
{
this.es = es;
this.sockcli = sockcli;
}
public void run()
{
for(int i=0;i<=4;i++)
{
System.out.println("Opération "+i);
}
System.out.println("Fin opérations");
}
}
public class Flux
{
public static String lectureMessage(DataInputStream in) throws IOException
{
int taille = in.readInt();
byte message[]=new byte[taille];
int nb = in.read(message,0,taille);
return new String(message);
}
public static void ecritureMessage(DataOutputStream out, String s) throws IOException
{
byte message[] = s.getBytes();
out.writeInt(message.length);
out.write(message);
}
}
| nedjma-soualah | Il y a 2 mois |
| Salut!! je trouve que votre programme n'est pas complet ( il contient bcp d'erreurs ) il veut pas démarré !! mais merci qnd meme pr ce tuto | |
Vous devez vous être connecté pour poster des commentaires