Bonjour,

Je bloque sur le début de mon code concernant un échange client/server par socket.

Mon code client ressemble à cela :
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();
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
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];
Le problème est le suivant : le server bloque à la 169e lecture à la ligne :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
while( inByte.read(b) > -1 )
Merci de votre aide.