C # Проверить постоянное подключение к интернету - PullRequest
1 голос
/ 28 апреля 2009

C # 2008

Я разработал приложение для программного телефона.

Однако я должен проверить постоянное подключение к интернету.

Я думал о том, чтобы иметь функцию, которая работает в другом потоке, который постоянно пингует IP-адрес. Однако какой IP-адрес я могу использовать, чтобы определить, подключено ли мое приложение к Интернету.

Большое спасибо,

Ответы [ 3 ]

1 голос
/ 28 апреля 2009

Вы просто хотите проверить, есть ли подключение к сети, или сеть действительно выходит в Интернет.

В первом случае сделайте, как сказано в «Как проверить вопрос о сетевом соединении» . Это даст вам знать, если кабель вытащен из задней панели вашего компьютера, но не сообщит вам, работает ли ваш модем или телефонная линия (например)

Второй случай более сложен, насколько я знаю, нет способа проверить это, кроме постоянного опроса какого-либо IP-адреса. В простом случае вы могли бы просто пропустить таймером какой-нибудь веб-сайт каждые 30 секунд в отдельном потоке и вызывать события, когда он решает, что Интернет не работает. Имейте в виду, что эхо-запросы ICMP не на 100% надежны, хотя иногда они могут быть сброшены, даже если ваше соединение в порядке.

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

1 голос
/ 28 апреля 2009

Я бы подумал, что лучшим вариантом будет подключение к порту 80 www.google.com.

Если соединение открыто, все хорошо.

Не уверен, насколько это легко реализовать в cf.

1 голос
/ 28 апреля 2009

Пожалуйста, посмотрите этот SO вопрос и ответ: C # - Как проверить сетевое соединение

Если вы ограничены .NET Compact Framework, воспользуйтесь бесплатной библиотекой OpenNETCF .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...