Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum. Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

Sujet : Serveur echo [ Divers / Général ] (wariom)

mardi 30 mai 2006 à 20:02:53 | Serveur echo

wariom

Bonjour,


Voila, je voudrais faire un serveur echo mais j'ai des problemes avec les ObjectInputStream et companie :
J'ai essayé de remplacer les Object.... par des Data... et cela fonctionnait, mais je cherche à comprendre pourquoi cela ne fonctionne pas avec des Object.


Voici mon serveur qui ne pose pas de probleme

import java.io.IOException;
import java.net.ServerSocket;
import java.net.Socket;


public class Serveur extends Thread {
    ServerSocket socketEcoute;
   
    public Serveur(int port) {
        try { socketEcoute=new ServerSocket(port);}
        catch (IOException e) {System.err.println("Erreur réseau"+e);
                System.exit(-1);
        }
        this.start();
    }
   
    public void run() {
        try{
            while(true) { Socket socketClient=socketEcoute.accept();
                Connexion c = new Connexion(socketClient);
            }
        }catch(IOException e) {System.err.println("Erreur réseau"+e);
                        System.exit(-1);
    }
}
   
    public static void main(String[] args) throws IOException {
        new Serveur(9002) ;
        new Client("127.0.0.1",9002);
    }
}




Voici le client :

import java.io.DataInputStream;
import java.io.IOException;
import java.io.ObjectInputStream;
import java.io.ObjectOutputStream;
import java.io.PrintStream;
import java.net.InetAddress;
import java.net.Socket;
import java.net.UnknownHostException;

public class Client {

    public Client(String adresseIP, int port) {
        InetAddress ip = null;
        try {
            ip = InetAddress.getByName(adresseIP);
        }catch(UnknownHostException e) {
            System.err.println("Le serveur"+adresseIP+"n'existe pas");
            System.exit(-1);
        }
        try {
            Socket server=new Socket( ip ,port);
            System.out.println("Connecte a"+adresseIP+"sur le port"+port);
            communique(server);
        }catch(IOException e) {System.err.println("Erreur réseau"+e);
        System.exit(-1);
        }
        catch(ClassNotFoundException f) {}
    }
   
    public void communique(Socket server) throws IOException, ClassNotFoundException {
        ObjectInputStream in=new ObjectInputStream(server.getInputStream());
        ObjectOutputStream out=new ObjectOutputStream(server.getOutputStream());
        DataInputStream stdin= new DataInputStream(System.in);   //entree des donnee clavier
        while(true) {
            String requete= stdin.readLine();
            if(requete==null) break;
            out.writeUnshared(requete);
            out.flush();
            String reponse=(String)in.readObject();System.out.println("coouu");
            if(reponse==null) {System.out.println("Connexion fermee par le serveur");
                break;
            }
            else traiter(reponse);
        }
    }
    public void traiter(String reponse){
        System.out.println("Réponse du serveur :"+reponse);
    }
}


Et voici la classe Connexion qui sert de lien entre le serveur et le client :

import java.io.DataInputStream;
import java.io.IOException;
import java.io.ObjectInputStream;
import java.io.ObjectOutputStream;
import java.io.PrintStream;
import java.net.Socket;

public class Connexion extends Thread {
   
   
    ObjectInputStream in;
    ObjectOutputStream out;
   
    public Connexion(Socket client) {
        try {in=new ObjectInputStream(client.getInputStream());
            out=new ObjectOutputStream(client.getOutputStream());
        }catch(IOException e) {System.err.println("Erreur réseau"+e);
        System.exit(-1);
        }
        this.start();
    }
    public void run() {
        try {
            for(;;) {
                String requete=(String)in.readObject();
                String reponse=traiter(requete);
                out.writeUnshared(reponse);
                out.flush();
            }
        }catch(IOException e){System.err.println("Erreur "+e);
        System.exit(-1);
        }catch(ClassNotFoundException f){System.out.println(f);}
    }
    private String traiter(String requete) {
        return requete;
    }
}

mercredi 31 mai 2006 à 09:22:49 | Re : Serveur echo

neodante

Administrateur CodeS-SourceS
Les stream Onbject font de la sérialisation d'objet Java .. si cela ne marche pas avec ton client c'est nroam puisque tu lui donne une chaine de caractères !!! N'utilise pas le writeUnshared à moins que tu lui donnes un objet ...

++



Cette discussion est classé dans : java, system, serveur, out, import


Répondre à ce message

Sujets en rapport avec ce message

Client/serveur [ par titou445 ] titou: serait il possible que l'on me donne le code pour receptionner et pour envoyer un tableau d'entiers svp?VOICI MON CODE:import java.net.*;import client/serveur [ par titou445 ] titou:> titou: serait il possible que l'on me donne le code pour receptionner et pour envoyer un tableau d'entiers svp?> VOICI MON CODE:> import java. pb Serveur exception [ par projet2501 ] Code source : import java.lang.*; import java.io.*; import java.net.*; public class Serveur { InetAddress addr; ServerSocket srv system.in.read() ne retourne jamais -1 ???? [ par drepou ] bonjour je cherche a faire un programme qui lit depuis un inputstream des donnees pour les reutiliser ensuite je test avec le in standart mais je ne s Instruction : system.out.println [ par BSide ] Bonjour,voici un exemple de code (je débute) qui me pose des problèmes :import java.util.*;import java.math.*;import java.lang.*;import java java et SAX parser xml [ par kungouf ] bonjour a tousj'utilise le parser SAX en java pour recuperer des donnees provenant d'un fichier xml, et mon probleme est le suivant:j'ai un plantage a Compatibilité MSVM et JAVA [ par EricW123 ] Bonjour,j'ai développé un applet java à partir de la SDK 1.5.0.C'est un client TCP/IP qui affiche des données que l'on lui envoie. L'application fonct Probleme de chargement avec serializable [ par shadowrus ] Bonjour, j'ai réalisé un programme java qui gère un serveur sur Linux. L'interface sur Konsole marche très bien. A la fin de la session, je sauvegard Serveur.java:23: cannot resolve symbol [ par doumeasse38 ] Bonjour, A la compile de mon fichier Serveur.java, j'ai ce message d'erreur : <span class="genm [HELP!] [Probleme lancement batch] [java] [ par 90frag ] helloVoici deux jour que je sillone le net et encore plus javafr afin de resoudre mon probleme..en vain;Je devien fou, je vois pas ce qui mache pas...


Nos sponsors

Sondage...

CalendriCode

Janvier 2009
LMMJVSD
   1234
567891011
12131415161718
19202122232425
262728293031 

Consulter la suite du CalendriCode

Téléchargements

Logiciels à télécharger sur le même thème :



Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel BAÏSE, Merci à Vincent pour ses précieux conseils
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés
Temps d'éxécution de la page : 0,546 sec

Google Coop CodeS-SourceS Google Coop CodeS-SourceS


Certaines images présentes sur le site (notament certains avatars) sont issues des collections IconShock, donc si vous souhaitez utiliser ces icons vous devez les acheter, ne les copiez pas et ne utilisez pas dans vos sites et applications sans les avoir commandé.