Программа Статуса Пк

Тема в разделе "C/C++/C#", создана пользователем leclet, 13 мар 2012.

  1. leclet

    leclet Гость

    Помогите написать следующее!!!
    Создаю программу, точней несколько программ в одном комплексе.
    1 - мини браузер, который сидит в трее и отображает одну страницу, при этом на сервере через php и базу sql должен определяться статус онлайн.
    2 - программа считывающая этот статус и выводить это в Label.

    Короче говоря мне надо что бы на одном компе отображалось, включен ли другой ПК. Этот способ вроде лучшее что мне пришло в голову, если нет, посоветуйте что можно сделать. Сразу скажу, компьютеры находятся не в локальной сети, и оба подключены к интернету через роутер, так что по IP не предлагать.

    Заранее спасибо!

    язык C#
     
  2. Истребитель

    Истребитель Well-Known Member

    Регистрация:
    9 июн 2010
    Сообщения:
    110
    Симпатии:
    0
    Если нет возможности установить связь между компьютерами (оба находятся за NAT/фаерволом) то передать сообщение можно только через "третье" лицо.

    Если "третьим" лицом является комп, куда вы можете поставить свой софт, тогда просто поставьте там программу, которая принимает сообщения по какому-то порту и запоминает дату последнего сообщения, и на конкретный пакет по тому же порту отвечает списком айпишников которые к ней обращались и дат последнего сообщения. Можно сделать так, чтобы в сообщении серверу от компьютера передавался скажем код компьютера, или его имя, тогда и по запросу можно выдавать не айпишник а этот код.

    Т.е. первая программа запускается на отслеживаемом, ей указывается что за строку передавать и с каким интервалом и по какому адресу, она по таймеру устанавливает соединение и передает пакет с содержимым "ONLINE:<Что_передавать>"по этому адресу. Когда её закрывают она передает пакет "OFFINE:<Что_передавать>" по этому же адресу.

    Вторая программа запускается на сервере и просто принимает соединения на указанный в ней (в окошке или в конфиг файле) порт. При поступлении запроса на соединение соглашается, принимает одно сообщение и разрывает соединение, сохраняет в массив дату обращения и сообщение (или обновляет строку массива) и булеан - было ли это сообщение типа "онлайн" или "оффлайн". На получение сообщения "QUERY:" высылает в ответ весь массив.

    Третья программа подсоединяется к указанному адресу и посылает особый пакет (скажем с иным префиксом в сообщении) на который сервер отвечает передачей текущего своего массива. Затем вы уже из массива выясняете, что вам надо.

    В C# есть готовые компоненты для соединения по сети, очень простые.

    Если же "третьим" лицом является веб сервер с php и sql, то да, аналогичное можно реализовать даже без окна браузера - просто посылаете POST или GET запрос (скажем, GET страницы с указанием типа сообщения - онлайн или оффлайн, и кода/имени, т.е. аналогично как если бы вы в браузере набрали myserver.ru/myscript.php?status=online&code=MYPC1). А при запросе через нормальный браузер уже страницы скажем status.php выводить таблицу которая сейчас хранится в sql базе.
     
Загрузка...

Поделиться этой страницей