Creation de compteur de performances

Résolu
Oranos25 Messages postés 2 Date d'inscription mardi 26 janvier 2010 Statut Membre Dernière intervention 27 janvier 2010 - 27 janv. 2010 à 15:41
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);

            }
        }
    }
}

2 réponses

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
C'est possible de savoir le typee de l'ereur ; ça sera plus facile pour comprendre d'où elle vient

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