begin process at 2012 02 14 13:17:24
  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 arret impossible d'un serveur java en utilisant ServerSocket lors du 2 eme essaie [ par omarprogrammer ] salut j'ai un soucis avec un serveur utilisant ServerSocket sur le port 9632 en attente je démarre et j'arrête le serveur à partir d'une barre de tach INF1220 - Intro au java [ par slimgodin ] Bonjour, Je suis actuellement après faire un cours de java par correspondance. Il s'agit d'une introduction au Java selon Téluq! La question avec la Problème d'envoi de mail au serveur (hotmail) [ par edouard333 ] Bonjour tout le monde, Mon problème est le suivant: j'arrive (et encore) a me loger au serveur d'Hotmail. Et là il m'oblige de dire "STARTTLS" (déjà j Envoi de tableau java [ par yoh42 ] Bonjour a tous, je viens vers vous car je rencontre actuellement un petit soucis. Je souhaiterai envoyer un tableau (d'objet que je rempli manuelleme lire sql select puis afficher la resultat sous forme d`excel [ par sa7li87 ] bonjours les amis , je fait une application en j# (visual studio 2005 ) qui sert a lire une requette sql (select) puis afficher la resultat sous forme Erreur: java.lang.NullPointerException [ par fabilande ] Bonjour tout le monde![^^sad1] J'ai cette erreur qui s'affiche quand j'essaie d'exécuter mon programme. java.lang.NullPointerException at etud.etudi connexion à mysql avec java [ par calmoust ] Bonjour, J'ai écrit le code suivant pour afficher le contenu d'une table crée dans une BD mysql. Le programme exécuter sous eclipse ne donne pas d'err tracage de la forme d'onde d'un signal [ par hammasaidi ] bonjour, suis débutant en java et svp quelqu'un qui peut m'aider de compiler mon code java je veux représenter la waveform dans le canevas [code=java Sockets.. fichier envoyé endomagé [ par gousalah ] Bonjour Voila mon probleme j'ai commencé a travaillé avec les sockets ... je veux envoyé des fichier a partie du client vers le serveurs... sa marche


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Février 2012
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
272829    

Consulter la suite du CalendriCode

 
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 : 1,310 sec (3)

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