Bonjour,
Je bloque sur le début de mon code concernant un échange client/server par socket.
Mon code client ressemble à cela :
Coté server, je réceptionne ainsi (encore une fois, c'est une approximation) :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13 Socket socket = new Socket(HOST, PORT); InputStream in = new BufferedInputStream( socket.getInputStream() ); OutputStream out = socket.getOutputStream(); byte[] datas = new byte[1024]; /* alimentation de datas */ // On écrit les données out.write(datas); // On force l'envoi out.flush();
Le problème est le suivant : le server bloque à la 169e lecture à la ligne :
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 ServerSocket server; Socket client; server = new ServerSocket(PORT); client = server.accept(); inByte = new BufferedInputStream( client.getInputStream() ); outByte = client.getOutputStream(); int longueur = 0; byte[] tampon = new byte[TAILLE_TAMPON]; byte[] b = new byte[1]; // Lecture bit à bit while( inByte.read(b) > -1 ) tampon[longueur++] = b[0]; // On recopie dans un tableau de byte à la bonne longueur byte[] message = new byte[longueur]; for(int i=0; i < longueur; i++) message[i] = tampon[i];
Merci de votre aide.
Code : Sélectionner tout - Visualiser dans une fenêtre à part while( inByte.read(b) > -1 )
Partager