Probléme avec sockets

Jaafarscorpion Messages postés 9 Date d'inscription mercredi 9 mars 2011 Statut Membre Dernière intervention 28 mars 2013 - 20 déc. 2012 à 11:23
Jaafarscorpion Messages postés 9 Date d'inscription mercredi 9 mars 2011 Statut Membre Dernière intervention 28 mars 2013 - 28 déc. 2012 à 22:26
bonjour je veux crée une application réseaux qui permet d'affiché tous les adresses ip qui sont connecté en réseaux j'ai choisir de travaillé avec le protocole tcp/ip sockets
j'ai fait 2 classes client et serveur le probléme quand je lance run coté client il m'affiche le client en cours en infini
voila la class serveur
/*
* 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.InputStreamReader;
import java.io.PrintWriter;
import java.net.InetAddress;
import java.net.ServerSocket;
import java.net.Socket;
import java.net.UnknownHostException;
import java.io.PrintWriter;

public class Serveur {

public static void main(String[] zero) {

ServerSocket socketserver ;
Socket socketduserveur ;
BufferedReader in;
PrintWriter out;

try {

socketserver = new ServerSocket(2012);
System.out.println("Le serveur est a l'écoute du port "+socketserver.getLocalPort());
socketduserveur[code=java] = socketserver.accept();

out = new PrintWriter(socketduserveur.getOutputStream());
out.println("Vous êtes connecté "
+ " !");
out.flush();

socketduserveur.close();
socketserver.close();

}catch (IOException e) {

e.printStackTrace();
}
}

}/code
et la class client
/*
* 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.util.Calendar;
import java.util.Date;
import java.lang.management.ManagementFactory;
public class ClientFini {

public ClientFini() {}
public static void main(String args[]) {

//Déclaration des variables
int compteur=5;
int sport=3078;
final String adress="127.0.0.1";
String dateheur;
String repertoirecourante;
String dossierutilisateur;
String systèmedexploitation;
String versionsystème;
String archsystème;
long EspacedisqueTotal;
long EspacedisqueUtiliser;
long EspacedisqueLibre;
long totalMemory;
long freeMemory;
String repertoire="";
String programmes="";
Socket socket = null;

int nbrprocessor;

while(true)
try{
//**************************** création d'un socket client ****************************************

System.out.println("Le client est en cours");
socket = new Socket(adress,2012);
BufferedReader plec = new BufferedReader(new InputStreamReader(socket.getInputStream()));
PrintWriter pred = new PrintWriter(new BufferedWriter(new OutputStreamWriter(socket.getOutputStream())), true);


//********************** LES méthode de récupération des données local *****************************


dateheur=Calendar.getInstance().getTime().toLocaleString();
systèmedexploitation =System.getProperty("os.name");
dossierutilisateur=System.getProperty("user.home").replace("\","/");
versionsystème=System.getProperty("os.version");
archsystème= System.getProperty("os.arch");
repertoire=System.getProperty("user.dir").replace("\","/");



//******accés au disque dur c: puis récupération des information du disque.******

File file = new File( "C:");
EspacedisqueTotal = file.getTotalSpace()/1024/1024/1024;
EspacedisqueLibre = file.getFreeSpace()/1024/1024/1024;
EspacedisqueUtiliser =(EspacedisqueTotal- EspacedisqueLibre);


//************//

com.sun.management.OperatingSystemMXBean mxbean = (com.sun.management.OperatingSystemMXBean) ManagementFactory.getOperatingSystemMXBean();
totalMemory =mxbean.getTotalPhysicalMemorySize();
freeMemory = mxbean.getFreePhysicalMemorySize();
nbrprocessor=mxbean.getAvailableProcessors();




//******liste des programmes installés sur l'ordinateur.******

File file1 = new File( "C:\\jaafar" );
File[] files = file1.listFiles();

for ( int fileInList = 0 ; fileInList < files.length; fileInList++)
programmes+=files[fileInList].getName()+"/";


//**************************** adress mac***************************
//******************************************************************

String am="";
NetworkInterface ni = NetworkInterface.getByInetAddress(InetAddress.getLocalHost());
if (ni != null) {
byte[] mac = ni.getHardwareAddress();
if (mac != null)
{

//************************format d'affichage de l'adresse mac*****************************
try{
for (int i = 0; i < mac.length-1; i++)
am+=String.format("%02X",mac[i])+"-";
am+=String.format("%02X",mac[mac.length-1]);
}
catch(Exception e)
{
System.out.println(e.getMessage());
}

}
else
System.out.println("Address doesn't exist or is not accessible.");

}
else
System.out.println("Network Interface for the specified address is not found.");


//**************************** ******************************

/*format d'envoie des résultats du socket client vers le serveur */

pred.println(dateheur+"_"+am+"_"+systèmedexploitation+"_"+versionsystème+"_"+archsystème+"_"+nbrprocessor+"_"+repertoire+"_"+dossierutilisateur+"_"+EspacedisqueTotal+"_"+EspacedisqueUtiliser+"_"+EspacedisqueLibre+"_"+totalMemory+"_"+freeMemory+"_"+programmes);
plec.readLine();
socket.close();



//-------------------------------------------- scan port ------------------------------------------


new Thread(){
public void run()
{
int pport=3016;//initialisation du numéro de port
int port=3009;
String hostname = null;
PrintWriter pred=null;
Socket socket=null;
for (port = 70; port

4 réponses

Utilisateur anonyme
24 déc. 2012 à 15:35
Salut,

il m'affiche le client en cours en infini

Tu veux dire que tu as une boucle infinie ? Dans ce cas vérifie si la condition d'arrêt de ta boucle qui fait l'affichage peut être vérifiée.

--
Pylouq
Heureux sont ceux qui lisent le Réglement, ils ne finiront peut-être pas au bûcher.
0
Jaafarscorpion Messages postés 9 Date d'inscription mercredi 9 mars 2011 Statut Membre Dernière intervention 28 mars 2013
27 déc. 2012 à 10:10
non ce n'est pas probléme d'affichage mais je crois probléme de connexion avec serveur
0
Utilisateur anonyme
28 déc. 2012 à 12:49
Salut,

Est-ce que tu pourrais poster à nouveau ton code mais en l'indentant mieux que ça stp ? Là il est illisible, on ne voit pas grands choses et on ne sait pas où se terminent tes blocs comme ta boucle infinie while(true).


--
Pylouq
Heureux sont ceux qui lisent le Réglement, ils ne finiront peut-être pas au bûcher.
0
Jaafarscorpion Messages postés 9 Date d'inscription mercredi 9 mars 2011 Statut Membre Dernière intervention 28 mars 2013
28 déc. 2012 à 22:26
bon le connexion avec le serveur ça marche mais le probléme dans la class client
import java.io.*;
import java.net.*;
import java.io.File;
import java.util.Calendar;
import java.util.Date;
import java.lang.management.ManagementFactory;
public class ClientFini {

public ClientFini() {}
public static void main(String args[]) {

//Déclaration des variables
int compteur=5;
int sport=3078;
final String adress="192.168.1.4";
String dateheur;
String repertoirecourante;
String dossierutilisateur;
String systèmedexploitation;
String versionsystème;
String archsystème;
long EspacedisqueTotal;
long EspacedisqueUtiliser;
long EspacedisqueLibre;
long totalMemory;
long freeMemory;
String repertoire="";
String programmes="";
Socket socket = null;

int nbrprocessor;

while(true)
try{
//**************************** création d'un socket client ****************************************

System.out.println("Le client est en cours");
socket = new Socket(adress, sport);
BufferedReader plec = new BufferedReader(new InputStreamReader(socket.getInputStream()));
PrintWriter pred = new PrintWriter(new BufferedWriter(new OutputStreamWriter(socket.getOutputStream())), true);


//********************** LES méthode de récupération des données local *****************************


dateheur=Calendar.getInstance().getTime().toLocaleString();
systèmedexploitation =System.getProperty("os.name");
dossierutilisateur=System.getProperty("user.home").replace("\","/");
versionsystème=System.getProperty("os.version");
archsystème= System.getProperty("os.arch");
repertoire=System.getProperty("user.dir").replace("\","/");



//******accés au disque dur c: puis récupération des information du disque.******

File file = new File( "C:");
EspacedisqueTotal = file.getTotalSpace()/1024/1024/1024;
EspacedisqueLibre = file.getFreeSpace()/1024/1024/1024;
EspacedisqueUtiliser =(EspacedisqueTotal- EspacedisqueLibre);


//************//

com.sun.management.OperatingSystemMXBean mxbean = (com.sun.management.OperatingSystemMXBean) ManagementFactory.getOperatingSystemMXBean();
totalMemory =mxbean.getTotalPhysicalMemorySize();
freeMemory = mxbean.getFreePhysicalMemorySize();
nbrprocessor=mxbean.getAvailableProcessors();




//******liste des programmes installés sur l'ordinateur.******

File file1 = new File( "C:\\Program Files" );
File[] files = file1.listFiles();

for ( int fileInList = 0 ; fileInList < files.length; fileInList++)
programmes+=files[fileInList].getName()+"/";


//**************************** adress mac***************************
//******************************************************************

String am="";
NetworkInterface ni = NetworkInterface.getByInetAddress(InetAddress.getLocalHost());
if (ni != null) {
byte[] mac = ni.getHardwareAddress();
if (mac != null)
{

//************************format d'affichage de l'adresse mac*****************************
try{
for (int i = 0; i < mac.length-1; i++)
am+=String.format("%02X",mac[i])+"-";
am+=String.format("%02X",mac[mac.length-1]);
}
catch(Exception e)
{
System.out.println(e.getMessage());
}

}
else
System.out.println("Address doesn't exist or is not accessible.");

}
else
System.out.println("Network Interface for the specified address is not found.");


//**************************** ******************************

/*format d'envoie des résultats du socket client vers le serveur */

pred.println(dateheur+"_"+am+"_"+systèmedexploitation+"_"+versionsystème+"_"+archsystème+"_"+nbrprocessor+"_"+repertoire+"_"+dossierutilisateur+"_"+EspacedisqueTotal+"_"+EspacedisqueUtiliser+"_"+EspacedisqueLibre+"_"+totalMemory+"_"+freeMemory+"_"+programmes);
plec.readLine();
socket.close();



//-------------------------------------------- scan port ------------------------------------------


new Thread(){
public void run()
{
int pport=3016;//initialisation du numéro de port
int port=3009;
String hostname = null;
PrintWriter pred=null;
Socket socket=null;
for (port = 70; port
0
Rejoignez-nous