Лекция 6 Раздел 6.1 Windows Phone Темы раздела 3.

Презентация:



Advertisements
Похожие презентации
Масштаб 1 : Приложение 1 к решению Совета депутатов города Новосибирска от _____________ ______.
Advertisements

Масштаб 1 : Приложение 1 к решению Совета депутатов города Новосибирска от
ЦИФРЫ ОДИН 11 ДВА 2 ТРИ 3 ЧЕТЫРЕ 4 ПЯТЬ 5 ШЕСТЬ 6.
Фрагмент карты градостроительного зонирования территории города Новосибирска Масштаб 1 : 4500 к решению Совета депутатов города Новосибирска от
Работа учащегося 7Б класса Толгского Андрея. Каждое натуральное число, больше единицы, делится, по крайней мере, на два числа: на 1 и на само себя. Если.
Матемтааки ЕТ СТ 2 класс Шипилова Наталия Викторовна учитель начальных классов, ВКК Шипилова Наталия Викторовна учитель начальных классов, ВКК.
27 апреля группадисциплина% ДЕ 1МП-12Английский язык57 2МП-34Экономика92 3МП-39Психология и педагогика55 4МП-39Электротехника и электроника82 5П-21Информатика.
Результаты работы 5а класса Кл. руководитель: Белобородова Н. С. Показатель 0123 Обучаемость 1-6%4-25%8-50%3-18 Навыки смыслового чтения 1-6%12-75%3-18%
Ул.Школьная Схема с. Вознесенка Ярославского городского поселения п.Ярославский 10 2 Ул.Флюоритовая
Таблица умножения на 8. Разработан: Бычкуновой О.В. г.Красноярск год.
Лекция 2 Раздел 2.1 Windows Phone Темы раздела 3.
Д. Дуброво д. Бортниково с. Никульское д. Подлужье д. Бакунино пос. Радужный - Песчаный карьер ООО ССП «Черкизово» - Граница сельского поселения - Граница.

Тренажор Таблично умножение Отлично!
1. Определить последовательность проезда перекрестка
27 апреля группадисциплина% ДЕ 1МП-12Английский язык57 2МП-34Экономика92 3МП-39Психология и педагогика55 4МП-39Электротехника и электроника82 5П-21Информатика.

Фрагмент карты градостроительного зонирования территории города Новосибирска Масштаб 1 : 6000 Приложение 7 к решению Совета депутатов города Новосибирска.
Курсы повышения квалификации (общие показатели в %)
Тренажор Таблично умножение Браво!
Транксрипт:

Лекция 6

Раздел 6.1

Windows Phone Темы раздела 3

Windows Phone Сигналы в Windows Phone 4 Программы Windows Phone Интерфейс сетевого программирования Wi-Fi Сотовая сеть USB

Windows Phone Классы NetworkInformation 5 using Microsoft.Phone.Net.NetworkInformation;

Windows Phone Получение информации о сети 6 if (DeviceNetworkInformation.IsWiFiEnabled) { // Wi-Fi доступен }

Windows Phone Сети и устройства 7

Windows Phone Сетевые пакеты 8

Windows Phone Сетевые адреса 9

Windows Phone Адресация в Интернете 10

Windows Phone Маршрутизация 11

Windows Phone Маршрутизация 12

Windows Phone Сетевые протоколы 13

Windows Phone Адресация устройств 14

Windows Phone Адресация подсетей 15

Windows Phone Сетевые порты 16

Windows Phone Общепринятые порты 17

Windows Phone Дейтаграммы 18

Windows Phone Сеансы подключения 19

Windows Phone UDP и TCP 20

Windows Phone Краткие итоги 21

Раздел 6.2

Windows Phone Темы раздела 23

Windows Phone Протокол UDP 24

Windows Phone Служба echo 25

Windows Phone Отправка сообщения 26 public string SendMessageUDP(string message, string hostUrl, int portNumber) { }... string resp; resp = SendMessageUDP(message, hostUrl, portNumber);

Windows Phone Класс Socket 27 using System.Net.Sockets;

Windows Phone Создание подключения 28 Socket hostSocket = null;... hostSocket = new Socket( AddressFamily.InterNetwork, SocketType.Dgram, ProtocolType.Udp);

Windows Phone Установка системы адресации 29 Socket hostSocket = null;... hostSocket = new Socket( AddressFamily.InterNetwork, SocketType.Dgram, ProtocolType.Udp);

Windows Phone Установка типа подключения 30 Socket hostSocket = null;... hostSocket = new Socket( AddressFamily.InterNetwork, SocketType.Dgram, ProtocolType.Udp);

Windows Phone Установка типа протокола 31 Socket hostSocket = null;... hostSocket = new Socket( AddressFamily.InterNetwork, SocketType.Dgram, ProtocolType.Udp);

Windows Phone Класс SocketAsyncEventArgs 32 SocketAsyncEventArgs socketEventArgs = new SocketAsyncEventArgs();

Windows Phone Задание конечной точки 33 socketEventArgs.RemoteEndPoint = new DnsEndPoint(hostUrl, portNumber, AddressFamily.InterNetwork);

Windows Phone Адрес удалённой системы 34 socketEventArgs.RemoteEndPoint = new DnsEndPoint(hostUrl, portNumber, AddressFamily.InterNetwork);

Windows Phone Определение порта 35 socketEventArgs.RemoteEndPoint = new DnsEndPoint(hostUrl, portNumber, AddressFamily.InterNetwork);

Windows Phone Определение схемы адресации 36 socketEventArgs.RemoteEndPoint = new DnsEndPoint(hostUrl, portNumber, AddressFamily.InterNetwork);

Windows Phone Кодирование сообщения 37

Windows Phone Использование класса Encoding 38 using System.Text;... byte[] messageBytes = Encoding.UTF8.GetBytes(message);

Windows Phone Асинхронные операции 39

Windows Phone Событие Completed 40 socketEventArgs.Completed += new EventHandler (delegate(object s, SocketAsyncEventArgs e) { // код в этом блоке выполняется, // когда происходит событие Completed });

Windows Phone Проверка результата 41 socketEventArgs.Completed += new EventHandler (delegate(object s, SocketAsyncEventArgs e) { if (e.SocketError == SocketError.Success) resp = ""; else resp = e.SocketError.ToString(); });

Windows Phone Проверка результата 42 socketEventArgs.Completed += new EventHandler (delegate(object s, SocketAsyncEventArgs e) { if (e.SocketError == SocketError.Success) resp = ""; else resp = e.SocketError.ToString(); });

Windows Phone Асинхронные операции и потоки 43

Windows Phone Синхронизация потоков 44 using System.Threading;... static ManualResetEvent transferDoneFlag = new ManualResetEvent(false);

Windows Phone Установка флага 45 socketEventArgs.Completed += new EventHandler (delegate(object s, SocketAsyncEventArgs e) { // запустить все ожидающие потоки transferDoneFlag.Set(); });

Windows Phone Использование флага 46 transferDoneFlag.WaitOne();

Windows Phone Использование тайм-аута 47 transferDoneFlag.WaitOne(MESSAGE_TIMEOUT_MSECS);

Windows Phone Отправка сообщения 48 transferDoneFlag.Reset(); hostSocket.SendToAsync(socketEventArgs); transferDoneFlag.WaitOne(MESSAGE_TIMEOUT_MSECS);

Windows Phone Получение сообщения 49 public string ReceiveMessageUDP(int portNumber, out string result) {... }

Windows Phone Адресация входящих сообщений 50 socketEventArgs.RemoteEndPoint = new IPEndPoint(IPAddress.Any, portNumber);

Windows Phone Декодирование сообщения 51 byte[] responseBytes = new Byte[MAX_BUFFER_SIZE]; socketEventArgs.SetBuffer(responseBytes, 0, MAX_BUFFER_SIZE); message = Encoding.UTF8.GetString(e.Buffer, e.Offset, e.BytesTransferred); message = message.Trim('\0');

Windows Phone Отправка и получение 52 string resp; string echo; resp = SendMessageUDP("Hello", "host.com", 7); if (resp.Length == 0) { resp = ReceiveMessageUDP(7, out echo); }

Windows Phone Краткие итоги 53

Раздел 6.3

Windows Phone Темы раздела 55

Windows Phone Протоколы TCP и HTTP 56

Windows Phone Получение веб-страницы 57 private string RequestWebPage(string url, string page, out string pageContent) {... } string resp; string page; resp = RequestWebPage (host.com", "index.html", out page);

Windows Phone Создание TCP-подключения 58 hostSocket = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp); // создание подключения hostSocket.ConnectAsync(socketEventArg);

Windows Phone Запрос веб-страницы 59 response = SendMessageTCP("GET " + page + " HTTP/1.1\r\nHost: " + url + "\r\nConnection: Close\r\n\r\n");

Windows Phone Получение ответного сообщения 60 response = ReceiveMessageTCP(out fetchText);

Windows Phone Получение нескольких сообщений 61 do { response = ReceiveMessageTCP(out fetchText); if (response != "") { CloseTCP(); return response; } wholePage = wholePage + fetchText; } while (fetchText != "");

Windows Phone Закрытие подключения 62 void CloseTCP() { if (hostSocket != null) { hostSocket.Close(); hostSocket = null; }

Windows Phone Краткие итоги 63

Раздел 6.4

Windows Phone Класс WebClient 65

Windows Phone Создание WebClient 66 WebClient client; // конструктор страницы приложения public MainPage() { InitializeComponent(); client = new WebClient(); client.DownloadStringCompleted += new DownloadStringCompletedEventHandler( client_DownloadStringCompleted); }

Windows Phone Создание обработчика события 67 WebClient client; // конструктор страницы приложения public MainPage() { InitializeComponent(); client = new WebClient(); client.DownloadStringCompleted += new DownloadStringCompletedEventHandler( client_DownloadStringCompleted); }

Windows Phone Отображение результатов 68 void client_DownloadStringCompleted(object sender, DownloadStringCompletedEventArgs e) { if (e.Error == null) { pageTextBlock.Text = e.Result; }

Windows Phone Отправка запроса 69 private void loadButton_Click(object sender, RoutedEventArgs e) { client.DownloadStringAsync(new Uri(urlTextBox.Text)); }

Windows Phone Краткие итоги 70

Раздел 6.5

Windows Phone Темы раздела 72

Windows Phone Чтение сообщений Twitter 73

Windows Phone Чтение сообщений Twitter 74 private void loadButton_Click(object sender, RoutedEventArgs e) { string url = " + nameTextBox.Text + ".xml"; client.DownloadStringAsync(new Uri(url)); }

Windows Phone Структурированные данные 75

Windows Phone Структура информации Twitter 76 Tue Oct 12 11:57: Hello from Twitter Rob Miles

Windows Phone Выполнение запроса LINQ 77 XElement TwitterElement = XElement.Parse(twitterText);

Windows Phone Класс для представления данных 78 public class TwitterPost { public string PostText { get; set; } public string DatePosted { get; set; } public string UserImage { get; set; } }

Windows Phone Создание запроса LINQ 79 var postList = from tweet in twitterElements.Descendants("status") select new TwitterPost { UserImage = tweet.Element("user"). Element("profile_image_url").Value, PostText = tweet.Element("text").Value, DatePosted = tweet.Element("created_at").Value };

Windows Phone Поиск XML-элементов 80 var postList = from tweet in twitterElements.Descendants("status") select new TwitterPost { UserImage = tweet.Element("user"). Element("profile_image_url").Value, PostText = tweet.Element("text").Value, DatePosted = tweet.Element("created_at").Value };

Windows Phone Внешний вид сообщений 81

Windows Phone Шаблон разметки сообщения 82

Windows Phone Фотография 83

Windows Phone Сообщение 84

Windows Phone Полный код списка ListBox 85

Windows Phone Указание источника данных 86 tweetsListBox.ItemsSource = postList;

Windows Phone Краткие итоги 87

Раздел 6.6

Windows Phone Темы раздела 89

Windows Phone Службы и прокси-объекты 90

Windows Phone Создание службы 91

Windows Phone Служба «Новость дня» 92 [ServiceContract] public interface INewsOfTheDayService { [OperationContract] string GetData (int value); }

Windows Phone Атрибуты Contract 93 [ServiceContract] public interface IJokeOfTheDayService { [OperationContract] string GetJoke(int jokeStrength); }

Windows Phone Метод службы «Новость дня» 94 public class NewsOfTheDayService : INewsOfTheDayService { public string GetData(int value) { string result; switch (value) { case 1: result = "Новость 1"; break; case 2: result = "Новость 2"; break; case 3: result = "Новость 3"; break; default: result = "Выбрана несуществующая категория"; break; } return result; } }

Windows Phone Запуск службы в Visual Studio 95

Windows Phone Описание службы 96

Windows Phone Создание ссылки на службу 97

Windows Phone Создание прокси-объекта 98 NewsOfTheDayService.NewsOfTheDayServiceClient newsclient; // Конструктор public MainPage() { InitializeComponent(); newsclient = new NewsOfTheDayService.NewsOfTheDayServiceClient(); jokeService.GetDataCompleted += new EventHandler (newsclient _GetJokeCompleted); }

Windows Phone Вывод результатов 99 void newsclient_GetDataCompleted(object sender, NewsOfTheDayService.GetDataCompletedEventArgs e) { if (!e.Cancelled) { newsTextBlock.Text = e.Result; } }

Windows Phone Вызов метода службы 100 private void getNewsButton_Click(object sender, RoutedEventArgs e) { int category = 0; if (int.TryParse(strengthTextBox.Text, out category)) { newsclient.GetJokeAsync(category); } }

Windows Phone Краткие итоги 101