salut je faire une application qui scan les adresses ip dans le réseaux je veux travaillé avec les sockets j'ai crée deux classes client/serveur le probléme coté client toujours il m'affiche le client est en cours!
class client
class serveur
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
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89 /* * To change this template, choose Tools | Templates * and open the template in the editor. */ package test; /** * * @author jaafar */ import java.io.*; import java.net.*; import java.io.File; import java.net.*; import java.util.Calendar; import java.util.Date; import java.sql.*; public class Client { public Client() { } public static void main(String args[]) { String namePC; String systèmedexploitation; long free; int numberOfProcessors; Date dateheur; long EspacedisqueTotal; long EspacedisqueUtiliser; long EspacedisqueLibre; String typesystème; Connection connexion; boolean statement; System.out.println("ceci un test"); try{ Socket socket = new Socket("127.0.0.1", 3003); BufferedReader plec = new BufferedReader( new InputStreamReader(socket.getInputStream()) ); BufferedReader pl = new BufferedReader(new InputStreamReader(System.in)); PrintWriter pred = new PrintWriter( new BufferedWriter( new OutputStreamWriter(socket.getOutputStream())), true); systèmedexploitation =System.getProperty("os.name"); typesystème= System.getProperty("os.arch"); File file = new File( "c:"); EspacedisqueTotal = file.getTotalSpace(); EspacedisqueUtiliser = file.lastModified(); EspacedisqueLibre = file.getFreeSpace(); numberOfProcessors = Runtime.getRuntime().availableProcessors(); free = Runtime.getRuntime().freeMemory(); dateheur=Calendar.getInstance().getTime(); File file1 = new File( "C:\\Program Files" ); File[] files = file1.listFiles(); String s=""; for ( int fileInList = 0 ; fileInList < files.length; fileInList++) s+=files[fileInList].getName()+" "; //System.out.println(plec.readLine()); pred.println(systèmedexploitation+"_"+typesystème+"_"+EspacedisqueTotal+"_"+EspacedisqueUtiliser+"_"+EspacedisqueLibre+"_"+numberOfProcessors+"_"+free+"_"+s); System.out.println(plec.readLine()); socket.close(); } catch(IOException e){ } } }
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
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98 /* * To change this template, choose Tools | Templates * and open the template in the editor. */ package test; import java.io.BufferedReader; import java.io.IOException; import java.io.InputStream; import java.io.InputStreamReader; import java.io.OutputStream; import java.net.InetAddress; import java.net.ServerSocket; import java.net.Socket; /** * * @author jaafar */ public class serveur extends Object{ protected ServerSocket socketEcoute; protected Socket socketService; protected InputStream entreeSocket; protected OutputStream sortieSocket; // constructeur, créer un Serveur public serveur(int numPort){ try{ //création du socket d'écoute (port numPort) socketEcoute = new ServerSocket(numPort); }catch (Exception ex){ // erreur de connexion System.err.println("Une erreur est survenue : "+ex); ex.printStackTrace(); } } // attente d'une connexion public void attenteConnexion(){ try{ // attente d'une demande de connexion socketService = socketEcoute.accept(); System.out.println("Nouvelle connexion : " + socketService); // pour test... // récupération des flux d'entrée/sortie de la socket de service entreeSocket = socketService.getInputStream(); sortieSocket = socketService.getOutputStream(); }catch (IOException ex){ // fin de connexion System.out.println("Une erreur est survenue : "+ex); ex.printStackTrace(); } } // methode qui retourne la chaine de caractere recue dans la socket ainsi que l'adresse de l'expéditeur, dans un // tableau de String, 1er element du tableau = adresse, 2eme element = message public String[] receptionMessage(){ String mess=""; String strIpClient=""; String tabMess[]=null; tabMess=new String[2]; try{ // on charge le contenu du scoket dans un BufferedReader BufferedReader br = new BufferedReader(new InputStreamReader(entreeSocket)); // on lit le contenu du buffer mess = br.readLine(); // afficher l'ip du client ??? InetAddress ipClient=socketService.getInetAddress(); strIpClient=ipClient.getHostAddress(); // System.out.println("reception message de "+strIpClient+" : "+mess); // on fait deja cette affichage dans l'appelant }catch (IOException ex){ // fin de connexion System.out.println("Une erreur est survenue : "+ex); ex.printStackTrace(); } tabMess[0]=strIpClient; tabMess[1]=mess; return tabMess; } }
Partager