begin process at 2010 02 10 13:36:32
  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 programme simple client serveur avec les sockets [ par mimi87uk ] Bonjour, j'ai programmer une socket serveur et une cliente, apres quand je compil je vois ce resultat C:\Users\Nas\Desktop\TPJAVA>javac Serveur.ja Créer un JAR en RMI [ par albanea ] Bonjour,J'ai réalisé un application Client/Serveur en RMI, sous Eclipse, et je cherche à créer un .JAR pour le Client et un pour le Serveur.Eclipse pe


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Février 2010
LMMJVSD
1234567
891011121314
15161718192021
22232425262728

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 : 0,312 sec (4)

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