Creation de compteur de performances [Résolu]

Messages postés
2
Date d'inscription
mardi 26 janvier 2010
Dernière intervention
27 janvier 2010
- 27 janv. 2010 à 15:41 - Dernière réponse :
Messages postés
24
Date d'inscription
mercredi 4 juin 2008
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 

Votre réponse

2 réponses

Meilleure réponse
Messages postés
24
Date d'inscription
mercredi 4 juin 2008
Dernière intervention
19 avril 2011
- 2 févr. 2010 à 10:18
3
Merci
C'est possible de savoir le typee de l'ereur ; ça sera plus facile pour comprendre d'où elle vient

Merci

Merci cs_vikking 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 90 internautes ce mois-ci

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

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.