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 :
Je n'ai pas trouvé de méthode pour convertir en tableau de byte mon paquet reçus dans l'objet data.
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 sais qu'en C# on peut le faire de la façon suivante avec un objet _socket de type Socket :
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.
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); } }
De plus, je n'arrive pas a récupérer la taille de mon paquet en octet.
Merci d'avance pour votre aide,
Partager