[Sockets] Recuperation des flux
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:
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;
} |
coté serveur :
Code:
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:
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