Problème de communication par socket
Bonjour,
Je bloque sur le début de mon code concernant un échange client/server par socket.
Mon code client ressemble à cela :
Code:
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:
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:
while( inByte.read(b) > -1 )
Merci de votre aide.