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 : [SOCKET] Obtention des flux [ Réseau & internet / Internet ] (xeon666)

jeudi 2 novembre 2006 à 16:24:47 | [SOCKET] Obtention des flux

xeon666

Bonjour,

Je creer actuellement un petit modele client-serveur en utilisant les sockets ...

J'ai cependant un probleme : Je lance mon serveur et un client, la méthode "accept()" du serveur est débloquée, le client a donc réussi à se connecter.
Cependant, mon serveur et mon client reste bloqué sur la méthode :
ClientSocket.getInputStream(), pas moyen donc de récuperer mes flux d'aucun des deux cotés 8O

je ne comprend pas ... voici des bouts de mon code


coté client :

[CODE]   public static void main(String[] args) {
        int Erreur=0;
        Socket cliSock=null;
        ObjectInputStream ois = null;
        ObjectOutputStream oos = null;
        try {
            System.out.println("Debut de connexion OK");
            cliSock=new Socket("localhost", 25024);
            System.out.println("connexion OK");
            ois=new ObjectInputStream(cliSock.getInputStream());
            oos=new ObjectOutputStream(cliSock.getOutputStream());
            System.out.println("Object Recuperer OK");
           
        }
        catch(UnknownHostException ex) {
           
            JOptionPane.showMessageDialog(new javax.swing.JFrame(), "Erreur! host non trouvé" , "Erreur fatale", JOptionPane.WARNING_MESSAGE, null);
            Erreur=1;
        }
        catch(IOException ex) {
            JOptionPane.showMessageDialog(new javax.swing.JFrame(), "Erreur! Pas de connexion" , "Erreur fatale", JOptionPane.WARNING_MESSAGE, null);
            Erreur=1;
        }[/CODE]

coté serveur :

[CODE]  try
        {
            while(true)
            {
                CSocket = SSocket.accept();
                nbrClient++;
                System.out.println("CLIENT CONNECTER");
                Date now = new Date();               
                String msg = new String (now.toLocaleString() + " > Connexion d'un client");
                unVecteur.add(msg);
                ListEvents.setListData(unVecteur);
                LabNbrClient.setText(String.valueOf(nbrClient));
                System.out.println("Avant creation du thread");
                ThreadTraitementClient TTC = new ThreadTraitementClient(CSocket);
                TTC.start();
            }
        }[/CODE]


coté thread gestion du client (serveur donc)
[CODE]  public ThreadTraitementClient(Socket C) {
        Client = C;
       
        // CREATION DU PROTOCOLE
        try
        {
        ObjectInputStream ois=new ObjectInputStream(C.getInputStream());
        ObjectOutputStream oos=new ObjectOutputStream(C.getOutputStream());
        NetworkCommunication NC = new NetworkCommunication(ois, oos);
        monProtocole = new COMAP(NC);
        }
        catch(IOException e)
        {
            JOptionPane.showMessageDialog(new javax.swing.JFrame(), "Erreur! Pas de connexion" , "Erreur fatale", JOptionPane.WARNING_MESSAGE, null);
        }
    }[/CODE]


tout le monde reste bloquer sur le getIn(OUT)putStream, que ce soit dans le client en lui meme, ou a la creation du thread qui gerera le client au niveau du serveur :s


samedi 4 novembre 2006 à 11:57:16 | Re : [SOCKET] Obtention des flux

ShareVB

Réponse acceptée !
salut,

voilà bien un grand classique problème des Socket en java : ce n'est pas getInputStream qui bloque mais ObjectInputStream...qui est d'une certaine façon bufferisé...Javadoc says : "This constructor will block until the corresponding ObjectOutputStream has written and flushed the header."...donc il faut que tu envoies un object d'un côté avant de construire ton input...

en général, un client-serveur c'est :
-> client : envoie une demande, attend une réponse
-> serveur : attend une demande, renvoie une réponse

en conclusion, il faut faut tu construise l'inputstream du client dans ton protocole APRES avoir envoyé ta demande...

ShareVB

samedi 4 novembre 2006 à 23:03:20 | Re : [SOCKET] Obtention des flux

xeon666

héhé merci, ca fonctionne parfaitemement maintenant :)



Cette discussion est classé dans : code, erreur, serveur, client, out


Répondre à ce message

Sujets en rapport avec ce message

Code pour chat (Client/Serveur) en MulticastSocket. [ par projet2501 ] Je recherche le code client/serveur d'un logiciel de chat en serveur multicastSocket et en java bien sur !!! Merci d'avance :o) Dialogue client server [ par ultrafil ] Salut,j'aimerai faire dialoguer mon systeme client serveur de type demande réponse.En réalité je n'ai pas de problème sur le faite d'envoyer des info JAVA CLIENT/SERVEUR FTP [ par nicordi ] BonjourJe vous envoi un mail car je suis en train de programmer un client/serveur FTP en java dans le cadre de mes etudes.Je suis en train de faire le [RMI] problème d'accès sur le serveur [ par cerco2 ] alut à tous,j'ai creer une petite application client serveur en utilisant la technologie rmi. quand j'execute le client et le serveur sur la meme mach Tchatche [ par mimosa803 ] Bonjour, j'ai développer une petite application de tchatche entre un serveur et un client. Le serveur se lance en 1 er lieu pour vérifier s'il ya des Erreur sur read et readLine sur un Socket [ par Nitruk ] Bonjour, j'essaye actuellement de bricoler en Java (je débute) les sockets et la connection inter-programmes, pour le plaisir. Seulement si j'arrive à probleme d initialisation dans faces-config.xml [ par oraclelaw ] bonjour mon probleme est l instanciation dynamique d un objet en fonction de celui selectionner a partir d une liste(qui contient une list des clients base de donnée Oracle 8i a distance d'une application en jBuilder x [ par chaho ] j'ai une application locale en jbuilder x et sa base de donnée Oracle 8i j'aimerai bien faire l'application qui contient la base de donnée dans un s comment faire Client/Serveur [ par chaho ] Bonjour je veus les étapes en détails comment créer une application Serveur avec une base donnée et une autre application Client. J'aiune applicat serveur java multithreaded Socket [ par aymoun11 ] je suis entrain de développer un serveur java qui accepte des message dans des des buffer envoyé par des différent client , le probléme que je trouve


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,218 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é.