Имитация операции PING в WP7 - PullRequest
2 голосов
/ 06 января 2012

Я пытаюсь смоделировать операцию ping, чтобы выяснить, доступен ли удаленный хост.Я не смог найти убедительных примеров кода для этого для WP7, поэтому я решил попробовать следующее.Я ищу подтверждение того, является ли это подходящим способом сделать это.

Socket socket =
                new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);

        SocketAsyncEventArgs args = new SocketAsyncEventArgs();
        args.RemoteEndPoint = new DnsEndPoint (someIP, 80); // use HTTP port 80 
        args.Completed += (obj, eva) =>
        {
            if (eva.SocketError != SocketError.Success) 
            {
              //raise an error or set a view model property indicating error                    
            }                
            socket.Close();
        };
        socket.ConnectAsync(args);

1 Ответ

2 голосов
/ 06 января 2012

Если в Mango ничего не изменилось, вы все равно можете по-настоящему подключаться к другим хостам только с помощью HTTP или HTTPS - так что «достижимость» действительно означает «прослушивание веб-запросов по известному URL» ... так что самым простым подходом было бысделать какой-нибудь безобидный веб-запрос на соответствующий сервер.WebClient, вероятно, самый простой способ сделать это, хотя, по моему опыту, он выполняет больше работы с потоком пользовательского интерфейса, чем можно было бы ожидать, поэтому я в конечном итоге использовал HttpWebRequest более низкого уровня.Для одного ping-подобного запроса вы можете использовать WebClient.

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