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
je ne comprend pas ... voici des bouts de mon code
coté client :
coté serveur :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23 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 : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17 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(); } }
coté thread gestion du client (serveur donc)
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16 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); } }
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
Partager