Bonjour,
Je débute en programmation Java avec les socket.
J'ai un socket client qui se connecte a un serveur.
Le serveur envoie un paquet.
Coté client je voudrais recevoir ce paquet et le copier dans un tableau de byte[] (se serait l'idéal).
Voila mon code :

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
import java.net.InetAddress;
import java.io.IOException;
import java.net.UnknownHostException;
import java.net.Socket;
import java.io.*;
import java.net.*;
 
public class socket {
 
	public static void readPaquet(InputStreamReader Data) {
 
	}
 
	public static void main(String[] zero) {
 
		InetAddress ServeurAdresse;
		Socket socket;
 
		try {
			socket = new Socket("127.0.0.1", 80);
 
			BufferedReader data = new BufferedReader(new InputStreamReader(socket.getInputStream()));
 
			System.out.println("Le serveur vous dit : " + data.readLine());
 
			socket.close();
 
		} catch (UnknownHostException e) {
 
			e.printStackTrace();
		}	catch (IOException e) {
 
            e.printStackTrace();
    }
	}
 
}
Je n'ai pas trouvé de méthode pour convertir en tableau de byte mon paquet reçus dans l'objet data.

Je sais qu'en C# on peut le faire de la façon suivante avec un objet _socket de type Socket :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
 
            while (_Socket.Connected)
            {
byte[] _buffer = new byte[_Socket.Available];
 
                if (_buffer.Length != 0)
                {
                    _Socket.Receive(_buffer);
                }
}
D'après ce que j'ai pus lire grâce a mes recherches sur internet, l'objet BufferedReader est plus adapté pour lire les données ligne par ligne.
De plus, je n'arrive pas a récupérer la taille de mon paquet en octet.

Merci d'avance pour votre aide,