Avatar billede Syska Mester
09. februar 2004 - 16:09 Der er 10 kommentarer og
1 løsning

Test om host er oppe

Hej Eksperter,

Egentlig et meget nemt spørglsmål troede jeg, men sværere end jeg troede.

Jeg mangler en funktion til at teste om en host er oppe eller nede, Det er nemt nok, men kan ikke finde en måde hvor jeg får en hurtig timeout, den normale timeout tid ved ping i dos er ca. 3-4 sek, og det er lang tid når der skal testes omkring 50 hosts.

Nogen der keder en måde at gøre det på?

// ouT
// Mikael Syska
Avatar billede arne_v Ekspert
09. februar 2004 - 16:33 #1
Lav de ping'er parallelt i 50 tråde !
Avatar billede arne_v Ekspert
09. februar 2004 - 16:34 #2
(jeg fandt iøvrigt noget ping kode i C# engang så man ikke behøver kalde
operativ systemets ping)
Avatar billede arne_v Ekspert
09. februar 2004 - 16:38 #3
Avatar billede Syska Mester
09. februar 2004 - 16:53 #4
og så skulle jeg måske lige starte med at sige at jeg er rimelig ny til C#, tråde på engelsk eller link så jeg lige kan læse om det..... og sææte mig ind i det.

ellers tag for ideen, er med på hvad du mener med det, bare ikke lige hvordan det skal laves.....
Avatar billede arne_v Ekspert
09. februar 2004 - 16:59 #5
tråde = threads
Avatar billede arne_v Ekspert
09. februar 2004 - 17:00 #6
Primitivt eksempel på tråde i C#:

using System;
using System.Threading;

class MainClass
{
    public static void Main(string[] args)
    {
        Thread[] t = new Thread[10];
        for(int i = 0; i < t.Length; i++) {
            t[i] = new Thread(new ThreadStart(DoSomething));
        }
        for(int i = 0; i < t.Length; i++) {
            t[i].Start();
        }
        for(int i = 0; i < t.Length; i++) {
            t[i].Join();
        }
    }
    public static void DoSomething()
    {
        Console.WriteLine("start");
        Thread.Sleep(5000);
        Console.WriteLine("end");
    }
}
Avatar billede Syska Mester
09. februar 2004 - 21:20 #8
Hey Arne V,

Jeg kan se at du er en meget aktiv mand i C# området her på exp.dk

Jeg har testet og prøvet dit script og det ser jo meget nemt ud. Jeg har prøvet at lave lidt om dog uden held. Jeg ville bruge Random til at få et random tal så den holdte en tilfældig pause mellem 2 og 10 sekunder, men dog uden held. Kan du give mig et eksempel på hvordan den kan smides ind, da jeg synes jeg får det samme tal når jeg prøver at bruge Random.

og en ting jeg læste i SDK'et var foølgende: "To improve performance, create one Random to generate many random numbers over time, instead of repeatedly creating a new Random to generate one random number."

Her kommer så mit andet problem, det med at reffere fra class til class og genbruge ting, synes hele tiden jeg bare får at der mangler en refference etc, og at den class ikke findes, kan ikke finde rundt i det ENDNU, men det kommer nok, ville bare høre om du kendte nogle guides/tutorials som måske beskrev det godt, så man kunne komme til at forstå det bedre, jeg har kun programmeret i php før......

// Syska, en hjælpeløs sjæl i det store C# univers
Avatar billede arne_v Ekspert
09. februar 2004 - 21:29 #9
Det må vel blive noget a la:

using System;
using System.Threading;

class MainClass
{
    private static Random rng = new Random();
    public static void Main(string[] args)
    {
        Thread[] t = new Thread[10];
        for(int i = 0; i < t.Length; i++) {
            t[i] = new Thread(new ThreadStart(DoSomething));
        }
        for(int i = 0; i < t.Length; i++) {
            t[i].Start();
        }
        for(int i = 0; i < t.Length; i++) {
            t[i].Join();
        }
    }
    public static void DoSomething()
    {
        Console.WriteLine("start");
        Thread.Sleep((rng.Next(8) + 2) * 1000);
        Console.WriteLine("end");
    }
}
Avatar billede Syska Mester
09. februar 2004 - 21:52 #10
lige en sidste ting, hvordan holder jeg styr på det, hvis jeg kun vil have 10 threads til at køre af gangen, og når en af dem så bliver færdig skal den pinge en ny host????
Avatar billede arne_v Ekspert
09. februar 2004 - 21:54 #11
Det er der flere mulige løsninger på.

Trådene kan have et array af 5 de skal processe.

Du kan lave en worker løsning.
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester