Creation de compteur de performances [Résolu]

Messages postés
2
Date d'inscription
mardi 26 janvier 2010
Statut
Membre
Dernière intervention
27 janvier 2010
- - Dernière réponse : cs_vikking
Messages postés
24
Date d'inscription
mercredi 4 juin 2008
Statut
Membre
Dernière intervention
19 avril 2011
- 2 févr. 2010 à 10:18
Bonjour,

Je suis etudiant en developement et j ai essayer de faire une appli en C# sous visual studio qui recupere les information d un poste(% utilisation Processeur,Memoire, Bandepassante) et les envoie vers une autre appli situer sur un autre poste j ai utilisé les PerformanceCounter integrer dans l environemment windows j ai tester en local aucun souci
lorsque je lance mon application sur un autre poste elle plante d entrée au demarrage je suppose donc que c est mes references au performanceCounter qui sont invalide d un poste a l autre , apres quelque recherche et une demande Laborieuse a mon formateur j aimerais un avis(il n a pas non plus su me dire comment cree mes propre performanceCounter se qui, je pense reglerais mon probleme)

donc si une ame charitable pourrais m éclairer je lui en serais reconnaissante.

namespace Montitoring_Serveur_pour_guigui
{
    public partial class frm_Main : Form
    {
        //initialisation des variables
        bool monitoringActif = false;
        string utilprocesseur,messageEnvoyer, messageRecue;
        byte[] tabRecue = new byte[256];
        NetworkStream trame;      
                
        public frm_Main()
        {
            InitializeComponent();
           
        }     

        private void DemarrageService(object sender, EventArgs e)
        {
            //on cree on objet de tcp listener
            TcpListener ecouteconexion = new TcpListener(IPAddress.Loopback, 12345);

            //on commance l ecoute
            ecouteconexion.Start();

            //on attend la conexion d un client
            TcpClient clientConnecté = ecouteconexion.AcceptTcpClient();

            //on recupere son message
           trame = clientConnecté.GetStream();           
            
            //on lie le message
            trame.Read(tabRecue, 0, tabRecue.Length);
            messageRecue = Encoding.ASCII.GetString(tabRecue);

            if (messageRecue.Contains("start"))
            {
                //on active la boucle du processus
                monitoringActif = true;
                try
                {
                    int indice = messageRecue.IndexOf('\0');
                    messageRecue = messageRecue.Substring(0, indice);
                    //on verifie si l adresse et valide
                    messageRecue = messageRecue.Substring(6);
                    IPAddress adresse =  IPAddress.Parse(messageRecue);
                }
                catch (FormatException)
                {
                    // on envoie un message d erreur et on arrete ici le prog
                    MessageBox.Show("format d adrese Ip non valide", "Erreur", MessageBoxButtons.OK, MessageBoxIcon.Error);
                    return;
                }
                      
                //on lance le processus d envoie de donner
                EnvoieDeDonner(messageRecue);
            }

        }

        /// <summary>
        /// methode qui envoie l utilisation processeur
        /// l utilisation memoire
        /// </summary>
        /// 


        private void EnvoieDeDonner(string adresse)
        {
            try
            {  
                //boucle infinie qui permet de faire marcher le processus
                while (monitoringActif == true)
                {
                    //on recupere le % d utilisation processeur
                    utilprocesseur = Convert.ToString(perfcount_UtilisationProcesseur.NextValue());

                    //on cree un tableau de la taille necaissaire a l envoie des donner 
                    messageEnvoyer = "Processeur : " + utilprocesseur ;
                    byte[] maLettre = new byte[Encoding.ASCII.GetByteCount(messageEnvoyer)];

                    //on met le message a envoyer dans le tableau en le convertissant en byte
                    maLettre = Encoding.ASCII.GetBytes(messageEnvoyer);
                   
                    //on envoie le message
                    trame.Write(maLettre, 0, maLettre.Length); 

                    //on remet a 0 le tableau
                    maLettre = new byte[0];

                    //on attend 2 secondes
                    Thread.Sleep(2000);
                
                }
            }
            catch (SocketException)
            {
                //on renvoie un message d erreur et on arrete ici
                MessageBox.Show("Impossible de contacter l hote de destination", "Erreur", MessageBoxButtons.OK, MessageBoxIcon.Error);

            }
        }
    }
}
Afficher la suite 

2 réponses

Meilleure réponse
Messages postés
24
Date d'inscription
mercredi 4 juin 2008
Statut
Membre
Dernière intervention
19 avril 2011
3
Merci
C'est possible de savoir le typee de l'ereur ; ça sera plus facile pour comprendre d'où elle vient

Merci

Dire « Merci » 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 200 internautes nous ont dit merci ce mois-ci

Commenter la réponse de cs_vikking
Messages postés
2
Date d'inscription
mardi 26 janvier 2010
Statut
Membre
Dernière intervention
27 janvier 2010
0
Merci
Ps:Pardon pour les fautes je viens de voir que je peut pas rectifier
Commenter la réponse de Oranos25