Bonjour,

J'ai des soucis avec mes flux ObjectInputStream. J'écris sur le flux par ObjectOutputStream.writeInt(7); mais mon ObjectIntputStream.readInt(); ne le reçoit pas.

Voici mon code. Je commence par le client qui s'est, au préalable, connecté sur le serveur. L'envoie et la réception du login par les flux fonctionne très bien dans ce cas là. Ensuite mon client lance un object requête:

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
 
Req Requete = new Req("GET_INFO", cliSock, Dest, Date);
Cet objet s'initialise fort bien et c'est lui qui fait le write:

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
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
 
public Req(String Requete, Socket soc, String Dest, String Date){
        Re = Requete;
        s = soc;
        da = Date;
        de = Dest;
 
        try
        {
           // ois= new ObjectInputStream(s.getInputStream());
           //PS: il ne veut pas mon ois!!!
            oos= new ObjectOutputStream(s.getOutputStream());
        }
        catch(IOException e)
        {
            System.err.println("Erreur IO:"+e.getMessage());
        }
        catch(Exception e)
        {
            System.err.println("Erreur Flux:"+e.getMessage());
        }
 
        if(Re.equalsIgnoreCase("GET_INFO")==true)
        {
            System.out.println("Tajmaps: Get Info");
 
            try{
                //Voici l'envoi qui fonctionne très bien.
                oos.writeInt(5);oos.flush();
            }        
            catch(Exception e)
            {
                System.err.println("Erreur Tajmaps:"+e.getMessage());
            }
        }        
        else
            System.out.println("Perdu");
    }
Mon serveur, après le login du client s'est mis en attente sur un read:

Et il attend... Il attend, il attend, et il attend tjs...
Pourquoi ne se rend-t-il pas compte que qqch a été écris. Les flux son initialisé sur la même socket.