begin process at 2012 02 15 12:56:41
  Trouver un code source :
 
dans
 
Accueil > Forum > 

JAVA / J2EE / J2ME

 > 

Réseau & internet

 > 

Internet

 > 

[SOCKET] Obtention des flux


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

[SOCKET] Obtention des flux

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ée 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 à programmation réseau "client/serveur" [ par sana83 ] je suis debutante en programmation réseau je veut faire un programme qui envoi des messages entre 1 client et 1 serveur j'ai le code : [b]code clien [PROBLEME] Envoi fichier .txt serveur -> client [ par robx2309 ] Bonsoir tout le monde, Voilà j'ai un problème avec mon programme : Je veux envoyer un fichier .txt d'une machine serveur (OutputStreamWriter) à une m Lancer un code java pour s'executer sur un serveur [ par marouene2706 ] Bonjour, j'ai une machine client et un serveur, ma machine fait des téléchargement depuis le serveur et genere des fichiers executable Wireshark(conte Chat Client Serveur en JAVA WEB [ par lordatef ] bonjour tout le monde, je suis entrain de developper une application client/serveur en Java Web, j'ai une tache consiste à realiser un petit Chat entr


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Février 2012
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
272829    

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 : 2,714 sec (3)

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