begin process at 2010 03 20 16:51:03
  Trouver un code source :
 
dans
 
Accueil > Forum > 

JAVA / J2EE / J2ME

 > 

Divers

 > 

Général

 > 

Serveur echo


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

Serveur echo

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ée dans : java, system, serveur, out, import


Répondre à ce message

Sujets en rapport avec ce message

comparaison de 2 fichiers texte (pb boucle while je pense) [ par tomski ] Bonjour,Jessaye de comparer 2 fichiers texte ligne par ligne.Chaque ligne est decoupee (split(";")) et chaque mot est stocké dans un array.Ensuite je arraylist base de donnée [ par zedtimi ] bonjour tout le mondejai etabli une connection avec une base de donnée et maitenant je veut utiliser une arraylist ou un tableau pour sauvgardé mes do probleme d'affichage les elements d'une table oracle dans java [ par raufito ] salut, j'ai un problème de connexion oracle et java, je veux afficher les éléments de ma table dans le console éclipse sachant que j'ai bien intégré l [JAVAMAIL] MessagingException Erreur [ par saturne2005 ] Bonjour Je suis nouveau dans le domaine, j'ai fait un petit programme de réception de mail, ça fonctionne très bien avec les messageries internet com urgent [ par bawilar ] je souhaiterais avoir un eclaircissement sur un programme en java svp voici le code: import java.util.*; public class Boucle { public static v SendMessage ne marche pas [ par matwiano ] salut j'ai telecharger smslib et j'ai placé les fichiers dans ces place la compilation sa marche mais l'execution ne marche pas il m'affiche le msg s ERREUR SENDMESSAGE [ par matwiano ] salut j'ai telecharger smslib et j'ai placé les fichiers dans ces place la compilation sa marche mais l'execution ne marche pas il m'affiche le msg su Deplacer un fichier local vers un server linux distant [ par mukolo mbombo ] salut All, j'ai crée ma classe avec java. mon application consiste à deplacer un fichier en local(windows) vers server distant(linux). Ma classe arriv


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Mars 2010
LMMJVSD
1234567
891011121314
15161718192021
22232425262728
293031    

Consulter la suite du CalendriCode

Photothèque

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), 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

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,406 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales