Socket

sistaroro Messages postés 16 Date d'inscription samedi 7 avril 2007 Statut Membre Dernière intervention 19 mars 2009 - 19 mars 2009 à 21:31
sistaroro Messages postés 16 Date d'inscription samedi 7 avril 2007 Statut Membre Dernière intervention 19 mars 2009 - 19 mars 2009 à 22:50
Bonjour ,
j'ai un petit souci. Je souhaite que le serveur puisse récupérer alternativement les éléments produits par le client1 et le client2.J'arrive a récupérer les éléments d'un seul client a la fois en lancant le serveur et ensuite le client.Comment puis-je faire?Merci
Je met mon code.

/*############################Serveur#########################*/
import java.io.*;
import java.net.*;

public class Serveur {
 static final int port = 8080;
 

 public static void main(String[] args) throws Exception {
 ServerSocket s = new ServerSocket(port);
 Socket soc = s.accept();

 // Un BufferedReader permet de lire par ligne.
 BufferedReader plec1 = new BufferedReader(
 new InputStreamReader(soc.getInputStream())
 );

ClientC clientc=new ClientC();
clientc.start();

 while (true) {
 String str1 = plec1.readLine(); // lecture du message
 System.out.println("RECU = " + str1); // trace locale
 
 if (str1.equals("FIN")) break;
 }
 plec1.close();
 
 soc.close();
 }
}
/*############################################################################*/

/*########################Client 1################################*/

import java.io.*;
import java.net.*;
/** Le processus client se connecte au site fourni dans la commande
* d'appel en premier argument et utilise le port distant 8080.
*/
public class ClientL {
static final int port = 8080;

public static void main(String[] args)
{

}

public void start() throws Exception
{
    char Tab[]={'a','b','c','d','e','f','g','h','i','j','k','l','m','n','o','p','q','r','s','t','u','v','w','x','y','z'};
Socket socket = new Socket("127.0.0.1", port);
System.out.println("SOCKET = " + socket);

PrintWriter pred = new PrintWriter(
new BufferedWriter(
new OutputStreamWriter(socket.getOutputStream())),
true);

for (int i = 0; i < 26; i++) {
pred.println(Tab[i]); // envoi d'un message
}
System.out.println("FIN"); // message de terminaison
pred.println("FIN") ;
pred.close();
socket.close();

}
}

/*#########################################################################################*/

/*#####################Client 2 ################
import java.io.*;
import java.net.*;
/** Le processus client se connecte au site fourni dans la commande
* d'appel en premier argument et utilise le port distant 8080.
*/
public class ClientC {
static final int port = 8186;

public static void main(String[] args)
{

}

public void start()throws Exception
{

Socket socket = new Socket("127.0.0.1", port);
System.out.println("SOCKET = " + socket);

PrintWriter pred = new PrintWriter(
new BufferedWriter(
new OutputStreamWriter(socket.getOutputStream())),
true);

for (int i = 0; i < 26; i++) {
pred.println(i); // envoi d'un message
}
System.out.println("FIN"); // message de terminaison
pred.println("FIN") ;
pred.close();
socket.close();
}
}

/*########################################################*/

1 réponse

sistaroro Messages postés 16 Date d'inscription samedi 7 avril 2007 Statut Membre Dernière intervention 19 mars 2009
19 mars 2009 à 22:50
Petites erreurs dans mon code.


/*############################Serveur#######################*##*/

import java.io.*;

import java.net.*;


public class Serveur {

static final int port = 8080;


public static void main(String[] args) throws Exception {

ServerSocket s = new ServerSocket(port);

Socket soc = s.accept();


// Un BufferedReader permet de lire par ligne.

BufferedReader plec1 = new BufferedReader(

new InputStreamReader(soc.getInputStream())

);


while (true) {

String str1 = plec1.readLine(); // lecture du message

System.out.println("RECU = " + str1); // trace locale


if (str1.equals("FIN")) break;

}

plec1.close();


soc.close();

}

}

/*############################################################################*/


/*########################Client 1################################*/


import java.io.*;

import java.net.*;

/** Le processus client se connecte au site fourni dans la commande

* d'appel en premier argument et utilise le port distant 8080.

*/

public class ClientL {

static final int port = 8080;


public static void main(String[] args)

{

char Tab[]={'a','b','c','d','e','f','g','h','i','j','k','l','m','n','o','p','q','r','s','t','u','v','w','x','y','z'};

Socket socket = new Socket("127.0.0.1", port);

System.out.println("SOCKET = " + socket);


PrintWriter pred = new PrintWriter(

new BufferedWriter(

new OutputStreamWriter(socket.getOutputStream())),

true);


for (int i = 0; i < 26; i++) {

pred.println(Tab[i]); // envoi d'un message

}

System.out.println("FIN"); // message de terminaison

pred.println("FIN") ;

pred.close();

socket.close();


}


}


/*#########################################################################################*/


/*#####################Client 2 ################

import java.io.*;

import java.net.*;

/** Le processus client se connecte au site fourni dans la commande

* d'appel en premier argument et utilise le port distant 8080.

*/

public class ClientC {

static final int port = 8186;


public static void main(String[] args) throws Exception

{


Socket socket = new Socket("127.0.0.1", port);

System.out.println("SOCKET = " + socket);


PrintWriter pred = new PrintWriter(

new BufferedWriter(

new OutputStreamWriter(socket.getOutputStream())),

true);


for (int i = 0; i < 26; i++) {

pred.println(i); // envoi d'un message

}

System.out.println("FIN"); // message de terminaison

pred.println("FIN") ;

pred.close();

socket.close();

}


}


/*########################################################*/
0
Rejoignez-nous