yoh42
Messages postés42Date d'inscriptionlundi 1 septembre 2008StatutMembreDernière intervention 6 septembre 2011
-
6 sept. 2011 à 09:17
yoh42
Messages postés42Date d'inscriptionlundi 1 septembre 2008StatutMembreDernière intervention 6 septembre 2011
-
6 sept. 2011 à 19:46
Bonjour a tous,
je viens vers vous car je rencontre actuellement un petit soucis.
Je souhaiterai envoyer un tableau (d'objet que je rempli manuellement pour des tests) d'un client vers un serveur.
La connexion entre le client et le serveur est opérationnelle mais pour la lecture et le transfert du tableau je patine un peu.
Voici mon code pour être plus précis :
Coté client :
//Méthode pour tester l'envoi d'un tableau
public static Object[] envoiInfoServeur() {
Object[] envoiinfosObject = new Object[8];
envoiinfosObject[0] = "123456";
envoiinfosObject[1] = "Test1";
envoiinfosObject[2] = "Test2";
envoiinfosObject[3] = "Test3";
envoiinfosObject[4] = "Test4";
envoiinfosObject[5] = "Test5";
envoiinfosObject[6] = "Test6";
envoiinfosObject[7] = "Test7";
return envoiinfosObject;
}
// Méthode qui permet d'envoyer un tableau au serveur
public static void EnvoiInfoAuServeur(int portServeur, Object[] value) {
// Creation du flux de sortie
try {
s = new Socket("127.0.0.1", portServeur);
System.out.println("127.0.0.1" + " " + portServeur);
fluxsortie = s.getOutputStream();
System.out.println(" ---> Envoi des infos en cours au serveur sur le port " + portServeur +"...");
OutputStream sortie = s.getOutputStream();
ObjectOutputStream oos = new ObjectOutputStream(sortie);
oos.writeObject(eConf.envoiInfoServeur());
System.out.print("Les donn�es a envoyees sont : " + eConf.envoiInfoServeur());
oos.flush();
} catch (Exception e2) {
System.out.println(" ---> Erreur en creant le flux de sortie : " + e2);
}
}
Coté serveur :
//Recevoir le tableau d'objet depuis le client
class ReceptionObjetFromClient implements Runnable {
public void run() {
try {
sServeur = new ServerSocket(this.port);
System.out.println("port pour recevoir les donn�es du client : " + port);
s = sServeur.accept();
// Client connecte
System.out.println("Client connect�. Voici la socket : " + s );
// Reception du tableau
InputStream is = s.getInputStream();
ObjectInputStream ois=new ObjectInputStream(is);
System.out.print("Les donn�es recues sont : "+ value);
}catch (Exception e) {
System.out.println(" ---> Erreur en creant le flux de sortie : " + e);}
}
}
Je sollicite votre aide pour envoyer le tableau du client vers le serveur.
Merci d'avance de votre aide.
public void run() {
try {
sServeur = new ServerSocket(this.port);
System.out.println("port pour recevoir les données du client : " + port);
s = sServeur.accept();
// Client connecte
System.out.println("Client connecté. Voici la socket : " + s );
// Reception du tableau
InputStream is = s.getInputStream();
ObjectInputStream ois = new ObjectInputStream(is);
for (int i = 0; i < 10; i++) {
System.out.println("Données reçues :" + (String)ois.readObject());
}
}catch (Exception e) {
System.out.println(" ---> Erreur en creant le flux de sortie : " + e);}
}
}
Coté client :
// Méthode qui permet d'envoyer un tableau au serveur
public static void EnvoiInfoAuServeur(int portServeur, Object[] value) {
// Creation du flux de sortie
try {
s = new Socket("127.0.0.1", portServeur);
System.out.println("127.0.0.1" + " " + portServeur);
fluxsortie = s.getOutputStream();
System.out.println(" ---> Envoi des infos en cours au serveur sur le port " + portServeur +"...");
OutputStream sortie = s.getOutputStream();
ObjectOutputStream oos = new ObjectOutputStream(sortie);
for (int i = 0; i < eConf.envoiInfoServeur().length; i++) {
Object element = envoiInfoServeur()[i];
// traitement
System.out.print("Les données a envoyees sont : " + element);
oos.writeObject(element);
}
//oos.flush();
//System.out.print("Les donn�es a envoyees sont : " + eConf.envoiInfoServeur().toString());
} catch (Exception e2) {
System.out.println(" ---> Erreur en creant le flux de sortie : " + e2);
}
}
yoh42
Messages postés42Date d'inscriptionlundi 1 septembre 2008StatutMembreDernière intervention 6 septembre 2011 6 sept. 2011 à 11:32
Re-bonjour,
j'avance petit à petit avec mon problème.
J'arrive a envoyer la tableau mais le problème et que du coté serveur je lis que la première ligne. Dois je faire une boucle ? je pense que oui mais je ne sais pas comment gérer la taille du tableau pour les répétition dans la boucle.
Voici mon code pour plus de compréhension :
Coté client :
//Méthode pour tester l'envoi d'un tableau
public static Object[] envoiInfoServeur() {
Object[] envoiinfosObject = new Object[8];
envoiinfosObject[0] = "123456";
envoiinfosObject[1] = "Test1";
envoiinfosObject[2] = "Test2";
envoiinfosObject[3] = "Test3";
envoiinfosObject[4] = "Test4";
envoiinfosObject[5] = "Test5";
envoiinfosObject[6] = "Test6";
envoiinfosObject[7] = "Test7";
return envoiinfosObject;
}
// Méthode qui permet d'envoyer un tableau au serveur
public static void EnvoiInfoAuServeur(int portServeur, Object[] value) {
// Creation du flux de sortie
try {
s = new Socket("127.0.0.1", portServeur);
System.out.println("127.0.0.1" + " " + portServeur);
fluxsortie = s.getOutputStream();
System.out.println(" ---> Envoi des infos en cours au serveur sur le port " + portServeur +"...");
OutputStream sortie = s.getOutputStream();
ObjectOutputStream oos = new ObjectOutputStream(sortie);
for (int i = 0; i < eConf.envoiInfoServeur().length; i++) {
Object element = envoiInfoServeur()[i];
// traitement
System.out.print("Les données a envoyees sont : " + element);
oos.writeObject(element);
}
//oos.flush();
//System.out.print("Les donn�es a envoyees sont : " + eConf.envoiInfoServeur().toString());
} catch (Exception e2) {
System.out.println(" ---> Erreur en creant le flux de sortie : " + e2);
}
}
Coté serveur :
//Recevoir le tableau d'objet depuis le client
class ReceptionObjetFromClient implements Runnable {
public void run() {
try {
sServeur = new ServerSocket(this.port);
System.out.println("port pour recevoir les donn�es du client : " + port);
s = sServeur.accept();
// Client connecte
System.out.println("Client connect�. Voici la socket : " + s );
// Reception du tableau
InputStream is = s.getInputStream();
ObjectInputStream ois = new ObjectInputStream(is);
System.out.println((String)ois.readObject());
}catch (Exception e) {
System.out.println(" ---> Erreur en creant le flux de sortie : " + e);}
}
}