Oranos25
Messages postés2Date d'inscriptionmardi 26 janvier 2010StatutMembreDernière intervention27 janvier 2010
-
27 janv. 2010 à 15:41
cs_vikking
Messages postés24Date d'inscriptionmercredi 4 juin 2008StatutMembreDernière intervention19 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);
}
}
}
}