Форум программистов, компьютерный форум, киберфорум
C# для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.90/29: Рейтинг темы: голосов - 29, средняя оценка - 4.90
 Аватар для CyberAlfred
63 / 62 / 14
Регистрация: 16.12.2012
Сообщений: 606

Индикация результатов команды ping

03.08.2014, 16:18. Показов 6258. Ответов 12
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Всем привет. Пишу для себя программку, которая пингует IP и если пинг <1 то пишет, что хорошо. если нет, то плохо
Проблема заключается в том, что она выводит конечный результат, т.е. результат последнего пинга, а не поочерёдно.
Ниже код
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
private void ping_server()
        {
            Ping ping = new Ping();
            int i = 0;
            string n = "good";
            string m = "no good";
            while (i < 10)
            {
                PingReply pingReply = ping.Send("192.168.1.1");
                //Console.WriteLine(pingReply.RoundtripTime); //время ответа
                //Console.WriteLine(pingReply.Status);        //статус
                //Console.WriteLine(pingReply.Address);       //IP
                //Thread.Sleep(500);
                i++;
                if (pingReply.RoundtripTime < 1)
                {
                    label1.Text = n;
                }
                else
                {
                    label1.Text = m;
                }
            }
        }
 
        private void button1_Click(object sender, EventArgs e)
        {
            ping_server();
        }
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
03.08.2014, 16:18
Ответы с готовыми решениями:

Вывод результатов PING в Label.Text
Решил начать изучение C# с простенькой проги для себя по выводу индикатора результов команды Ping. Почитал форум, приспособил код для себя...

Простейшая реализация команды ping
Нужно простейшая реализация команды ping. Если есть соединение, возвращать 1. Если нет - 0. Какие функции нужно использовать для...

Что означает параметр -w команды ping?
Написано: -w таймаут Таймаут каждого ответа в миллисекундах. Что, конечно, ложь, ибо: ping -w 30000 127.0.0.1 ...

12
foo();
 Аватар для rattrapper
886 / 587 / 222
Регистрация: 03.07.2013
Сообщений: 1,549
Записей в блоге: 2
03.08.2014, 18:04
CyberAlfred, может так?
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
Ping ping = new Ping();
int i = 0;
string n = "good";
string m = "no good";
while (i < 10)
{
    var output = new StringBuilder();
    PingReply pingReply = ping.Send("192.168.1.1");
    //Console.WriteLine(pingReply.RoundtripTime); //время ответа
    //Console.WriteLine(pingReply.Status);        //статус
    //Console.WriteLine(pingReply.Address);       //IP
    //Thread.Sleep(500);
    i++;
    output.Append(pingReply.RoundtripTime < 1 ? n : m);
}
label1.Text = output;
0
 Аватар для CyberAlfred
63 / 62 / 14
Регистрация: 16.12.2012
Сообщений: 606
03.08.2014, 18:18  [ТС]
rattrapper, StringBuilder невозможно преобразовать в string. это на 16 строке
0
871 / 721 / 304
Регистрация: 15.04.2013
Сообщений: 2,047
Записей в блоге: 5
03.08.2014, 18:30
CyberAlfred,
Удивительно что оно у вас не ругалось на то что output не объявлен
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
var ping = new Ping();
            int i = 0;
            const string n = "good ";
            const string m = "no good";
            var output = new StringBuilder();
            while (i++ < 10)
            {
                PingReply pingReply = ping.Send("192.168.1.1");
                //Console.WriteLine(pingReply.RoundtripTime); //время ответа
                //Console.WriteLine(pingReply.Status);        //статус
                //Console.WriteLine(pingReply.Address);       //IP
                //Thread.Sleep(500);
                output.Append(pingReply.RoundtripTime < 1 ? n : m);
            }
            label1.Text = output.ToString();
0
 Аватар для CyberAlfred
63 / 62 / 14
Регистрация: 16.12.2012
Сообщений: 606
03.08.2014, 19:18  [ТС]
XRoy, у него почему-то output объявлен в самом цикле. я его вынес, но ругался именно на 16 строку. подправил сам, но криво - заработало. Ваш метод тоже заработал. осталось дописать, чтобы предыдущее сообщение в label затиралось после прохождения цикла.

Добавлено через 44 минуты
XRoy, еще такой вопрос. никак не могу сообразить как сделать, чтобы программа запустилась и после этого начала пинговать. у меня она пока цикл весь не пройдёт, не открывается. да и вообще хочется сделать что бы пинговала бесконечно, пока не закроешь ее, а то у меня фигня какая-то написана в условии цикла.
0
871 / 721 / 304
Регистрация: 15.04.2013
Сообщений: 2,047
Записей в блоге: 5
03.08.2014, 19:30
CyberAlfred,
Вынесите пинговку в отдельный поток.
0
foo();
 Аватар для rattrapper
886 / 587 / 222
Регистрация: 03.07.2013
Сообщений: 1,549
Записей в блоге: 2
03.08.2014, 20:49

Не по теме:

CyberAlfred, XRoy, сорри, без VS код писал



Добавлено через 14 минут
Цитата Сообщение от CyberAlfred Посмотреть сообщение
еще такой вопрос. никак не могу сообразить как сделать, чтобы программа запустилась и после этого начала пинговать. у меня она пока цикл весь не пройдёт, не открывается. да и вообще хочется сделать что бы пинговала бесконечно, пока не закроешь ее, а то у меня фигня какая-то написана в условии цикла.
CyberAlfred, надеюсь, это подойдет
C#
1
2
3
4
5
6
7
8
9
10
private void ping_server()
{
    var ping = new Ping();
    var timer = new Timer {Interval = 500};
    timer.Tick += (sender, e) =>
        label1.Text = ping.Send("192.168.1.1").RoundtripTime < 1
            ? "good"
            : "no good";
    timer.Start();
}
0
 Аватар для CyberAlfred
63 / 62 / 14
Регистрация: 16.12.2012
Сообщений: 606
03.08.2014, 22:16  [ТС]
rattrapper, спасибо. работает но это же не отдельный поток создан правильно? а просто используется тайпер для пингования?
0
Заблокирован
03.08.2014, 22:37
В примере выше не было создано потока просто быстро присвоена функция обработки тика
0
foo();
 Аватар для rattrapper
886 / 587 / 222
Регистрация: 03.07.2013
Сообщений: 1,549
Записей в блоге: 2
03.08.2014, 23:07
Цитата Сообщение от CyberAlfred Посмотреть сообщение
но это же не отдельный поток создан правильно? а просто используется таймер для пингования?
Цитата Сообщение от Butter Посмотреть сообщение
примере выше не было создано потока
На самом деле использование таймера - это неявное создание еще одного потока, в котором и выполняется метод, обрабатывающий событие Tick.
1
Заблокирован
03.08.2014, 23:32
Цитата Сообщение от rattrapper Посмотреть сообщение
На самом деле использование таймера - это неявное создание еще одного потока, в котором и выполняется метод, обрабатывающий событие Tick.
На самом деле функция формы это уже куча потоков.... Но никого не интересуют как они созданы когда вопрос идет в момент обучения....
0
foo();
 Аватар для rattrapper
886 / 587 / 222
Регистрация: 03.07.2013
Сообщений: 1,549
Записей в блоге: 2
03.08.2014, 23:54
Цитата Сообщение от Butter Посмотреть сообщение
На самом деле функция формы это уже куча потоков....
Тут с вами не поспоришь
Цитата Сообщение от Butter Посмотреть сообщение
Но никого не интересуют как они созданы когда вопрос идет в момент обучения....
Вот я и решил про формы не рассказывать. Но про таймер ТС очень ясно задал вопрос, так что, уж простите , пришлось поведать человеку тайны мира сего
0
Эксперт .NET
 Аватар для insite2012
5548 / 4311 / 1218
Регистрация: 12.10.2013
Сообщений: 12,371
Записей в блоге: 2
05.08.2014, 23:46
Цитата Сообщение от Butter Посмотреть сообщение
На самом деле функция формы это уже куча потоков
Ну да... А как же [STAThread]?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
05.08.2014, 23:46
Помогаю со студенческими работами здесь

Выполнение команды ping в отдельном потоке
После ввода ip-адреса и нажатия кнопки, поверх этих двух элементов должна появляться panel, на которой крутиться анимация загрузки, которая...

В консоли не проходят команды ping и tracert
Началось с того в танках поднялся пинг и постоянно вылетаю, проверил связь все нормально, скорость соответствует заявленной. Далее решил...

Как привязать к 'батону' выполнение команды 'Ping'?
Подскажите пожайлуста! Как в C++ Builder 5 привязать к 'батону' выполнение команды 'Ping' и в завершении оной вывести результат в...

Возможно написать bat\cmd для команды ping ?
Помогите ли написать BAT\CMD c командной ping -a для диапазона ip адресов от 10.77.13.1 до 10.77.13.255 с выводом результата в файл. Ip...

Получить только значение пинга из вывода команды ping
Ув. КиберФорумчане! Есть в природе команда ping! Так вот, при выполнении команды ping sealink.tk -n 1 Оно выводит: Обмен...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
13
Ответ Создать тему
Новые блоги и статьи
Уведомление о неверно выбранном значении справочника
Maks 06.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "НарядПутевка", разработанного в конфигурации КА2. Задача: уведомлять пользователя, если в документе выбран неверный склад. . .
Установка Qt Creator для C и C++: ставим среду, CMake и MinGW без фреймворка Qt
8Observer8 05.04.2026
Среду разработки Qt Creator можно установить без фреймворка Qt. Есть отдельный репозиторий для этой среды: https:/ / github. com/ qt-creator/ qt-creator, где можно скачать установщик, на вкладке Releases:. . .
AkelPad-скрипты, структуры, и немного лирики..
testuser2 05.04.2026
Такая программа, как AkelPad существует уже давно, и также давно существуют скрипты под нее. Тем не менее, прога живет, периодически что-то не спеша дополняется, улучшается. Что меня в первую очередь. . .
Отображение реквизитов в документе по условию и контроль их заполнения
Maks 04.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеСпецтехники", разработанного в конфигурации КА2. Данный документ берёт данные из другого нетипового документа. . .
Фото всей Земли с борта корабля Orion миссии Artemis II
kumehtar 04.04.2026
Это первое подобное фото сделанное человеком за 50 лет. Снимок называют новым вариантом легендарной фотографии «The Blue Marble» 1972 года, сделанной с борта корабля «Аполлон-17». Новое фото. . .
Вывод диалогового окна перед закрытием, если документ не проведён
Maks 04.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: реализовать программный контроль на предмет проведения документа. . .
Программный контроль заполнения реквизитов табличной части документа
Maks 02.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: 1. Реализовать контроль заполнения реквизита. . .
wmic не является внутренней или внешней командой
Maks 02.04.2026
Решение: DISM / Online / Add-Capability / CapabilityName:WMIC~~~~ Отсюда: https:/ / winitpro. ru/ index. php/ 2025/ 02/ 14/ komanda-wmic-ne-naydena/
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru