Lire un paquet reçu par un socket octet par octet
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:
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:
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,