Скачать презентацию
Идет загрузка презентации. Пожалуйста, подождите
Презентация была опубликована 10 лет назад пользователемНина Штырина
1 Лекция 6
2 Раздел 6.1
3 Windows Phone Темы раздела 3
4 Windows Phone Сигналы в Windows Phone 4 Программы Windows Phone Интерфейс сетевого программирования Wi-Fi Сотовая сеть USB
5 Windows Phone Классы NetworkInformation 5 using Microsoft.Phone.Net.NetworkInformation;
6 Windows Phone Получение информации о сети 6 if (DeviceNetworkInformation.IsWiFiEnabled) { // Wi-Fi доступен }
7 Windows Phone Сети и устройства 7
8 Windows Phone Сетевые пакеты 8
9 Windows Phone Сетевые адреса 9
10 Windows Phone Адресация в Интернете 10
11 Windows Phone Маршрутизация 11
12 Windows Phone Маршрутизация 12
13 Windows Phone Сетевые протоколы 13
14 Windows Phone Адресация устройств 14
15 Windows Phone Адресация подсетей 15
16 Windows Phone Сетевые порты 16
17 Windows Phone Общепринятые порты 17
18 Windows Phone Дейтаграммы 18
19 Windows Phone Сеансы подключения 19
20 Windows Phone UDP и TCP 20
21 Windows Phone Краткие итоги 21
22 Раздел 6.2
23 Windows Phone Темы раздела 23
24 Windows Phone Протокол UDP 24
25 Windows Phone Служба echo 25
26 Windows Phone Отправка сообщения 26 public string SendMessageUDP(string message, string hostUrl, int portNumber) { }... string resp; resp = SendMessageUDP(message, hostUrl, portNumber);
27 Windows Phone Класс Socket 27 using System.Net.Sockets;
28 Windows Phone Создание подключения 28 Socket hostSocket = null;... hostSocket = new Socket( AddressFamily.InterNetwork, SocketType.Dgram, ProtocolType.Udp);
29 Windows Phone Установка системы адресации 29 Socket hostSocket = null;... hostSocket = new Socket( AddressFamily.InterNetwork, SocketType.Dgram, ProtocolType.Udp);
30 Windows Phone Установка типа подключения 30 Socket hostSocket = null;... hostSocket = new Socket( AddressFamily.InterNetwork, SocketType.Dgram, ProtocolType.Udp);
31 Windows Phone Установка типа протокола 31 Socket hostSocket = null;... hostSocket = new Socket( AddressFamily.InterNetwork, SocketType.Dgram, ProtocolType.Udp);
32 Windows Phone Класс SocketAsyncEventArgs 32 SocketAsyncEventArgs socketEventArgs = new SocketAsyncEventArgs();
33 Windows Phone Задание конечной точки 33 socketEventArgs.RemoteEndPoint = new DnsEndPoint(hostUrl, portNumber, AddressFamily.InterNetwork);
34 Windows Phone Адрес удалённой системы 34 socketEventArgs.RemoteEndPoint = new DnsEndPoint(hostUrl, portNumber, AddressFamily.InterNetwork);
35 Windows Phone Определение порта 35 socketEventArgs.RemoteEndPoint = new DnsEndPoint(hostUrl, portNumber, AddressFamily.InterNetwork);
36 Windows Phone Определение схемы адресации 36 socketEventArgs.RemoteEndPoint = new DnsEndPoint(hostUrl, portNumber, AddressFamily.InterNetwork);
37 Windows Phone Кодирование сообщения 37
38 Windows Phone Использование класса Encoding 38 using System.Text;... byte[] messageBytes = Encoding.UTF8.GetBytes(message);
39 Windows Phone Асинхронные операции 39
40 Windows Phone Событие Completed 40 socketEventArgs.Completed += new EventHandler (delegate(object s, SocketAsyncEventArgs e) { // код в этом блоке выполняется, // когда происходит событие Completed });
41 Windows Phone Проверка результата 41 socketEventArgs.Completed += new EventHandler (delegate(object s, SocketAsyncEventArgs e) { if (e.SocketError == SocketError.Success) resp = ""; else resp = e.SocketError.ToString(); });
42 Windows Phone Проверка результата 42 socketEventArgs.Completed += new EventHandler (delegate(object s, SocketAsyncEventArgs e) { if (e.SocketError == SocketError.Success) resp = ""; else resp = e.SocketError.ToString(); });
43 Windows Phone Асинхронные операции и потоки 43
44 Windows Phone Синхронизация потоков 44 using System.Threading;... static ManualResetEvent transferDoneFlag = new ManualResetEvent(false);
45 Windows Phone Установка флага 45 socketEventArgs.Completed += new EventHandler (delegate(object s, SocketAsyncEventArgs e) { // запустить все ожидающие потоки transferDoneFlag.Set(); });
46 Windows Phone Использование флага 46 transferDoneFlag.WaitOne();
47 Windows Phone Использование тайм-аута 47 transferDoneFlag.WaitOne(MESSAGE_TIMEOUT_MSECS);
48 Windows Phone Отправка сообщения 48 transferDoneFlag.Reset(); hostSocket.SendToAsync(socketEventArgs); transferDoneFlag.WaitOne(MESSAGE_TIMEOUT_MSECS);
49 Windows Phone Получение сообщения 49 public string ReceiveMessageUDP(int portNumber, out string result) {... }
50 Windows Phone Адресация входящих сообщений 50 socketEventArgs.RemoteEndPoint = new IPEndPoint(IPAddress.Any, portNumber);
51 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');
52 Windows Phone Отправка и получение 52 string resp; string echo; resp = SendMessageUDP("Hello", "host.com", 7); if (resp.Length == 0) { resp = ReceiveMessageUDP(7, out echo); }
53 Windows Phone Краткие итоги 53
54 Раздел 6.3
55 Windows Phone Темы раздела 55
56 Windows Phone Протоколы TCP и HTTP 56
57 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);
58 Windows Phone Создание TCP-подключения 58 hostSocket = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp); // создание подключения hostSocket.ConnectAsync(socketEventArg);
59 Windows Phone Запрос веб-страницы 59 response = SendMessageTCP("GET " + page + " HTTP/1.1\r\nHost: " + url + "\r\nConnection: Close\r\n\r\n");
60 Windows Phone Получение ответного сообщения 60 response = ReceiveMessageTCP(out fetchText);
61 Windows Phone Получение нескольких сообщений 61 do { response = ReceiveMessageTCP(out fetchText); if (response != "") { CloseTCP(); return response; } wholePage = wholePage + fetchText; } while (fetchText != "");
62 Windows Phone Закрытие подключения 62 void CloseTCP() { if (hostSocket != null) { hostSocket.Close(); hostSocket = null; }
63 Windows Phone Краткие итоги 63
64 Раздел 6.4
65 Windows Phone Класс WebClient 65
66 Windows Phone Создание WebClient 66 WebClient client; // конструктор страницы приложения public MainPage() { InitializeComponent(); client = new WebClient(); client.DownloadStringCompleted += new DownloadStringCompletedEventHandler( client_DownloadStringCompleted); }
67 Windows Phone Создание обработчика события 67 WebClient client; // конструктор страницы приложения public MainPage() { InitializeComponent(); client = new WebClient(); client.DownloadStringCompleted += new DownloadStringCompletedEventHandler( client_DownloadStringCompleted); }
68 Windows Phone Отображение результатов 68 void client_DownloadStringCompleted(object sender, DownloadStringCompletedEventArgs e) { if (e.Error == null) { pageTextBlock.Text = e.Result; }
69 Windows Phone Отправка запроса 69 private void loadButton_Click(object sender, RoutedEventArgs e) { client.DownloadStringAsync(new Uri(urlTextBox.Text)); }
70 Windows Phone Краткие итоги 70
71 Раздел 6.5
72 Windows Phone Темы раздела 72
73 Windows Phone Чтение сообщений Twitter 73
74 Windows Phone Чтение сообщений Twitter 74 private void loadButton_Click(object sender, RoutedEventArgs e) { string url = " + nameTextBox.Text + ".xml"; client.DownloadStringAsync(new Uri(url)); }
75 Windows Phone Структурированные данные 75
76 Windows Phone Структура информации Twitter 76 Tue Oct 12 11:57: Hello from Twitter Rob Miles
77 Windows Phone Выполнение запроса LINQ 77 XElement TwitterElement = XElement.Parse(twitterText);
78 Windows Phone Класс для представления данных 78 public class TwitterPost { public string PostText { get; set; } public string DatePosted { get; set; } public string UserImage { get; set; } }
79 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 };
80 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 };
81 Windows Phone Внешний вид сообщений 81
82 Windows Phone Шаблон разметки сообщения 82
83 Windows Phone Фотография 83
84 Windows Phone Сообщение 84
85 Windows Phone Полный код списка ListBox 85
86 Windows Phone Указание источника данных 86 tweetsListBox.ItemsSource = postList;
87 Windows Phone Краткие итоги 87
88 Раздел 6.6
89 Windows Phone Темы раздела 89
90 Windows Phone Службы и прокси-объекты 90
91 Windows Phone Создание службы 91
92 Windows Phone Служба «Новость дня» 92 [ServiceContract] public interface INewsOfTheDayService { [OperationContract] string GetData (int value); }
93 Windows Phone Атрибуты Contract 93 [ServiceContract] public interface IJokeOfTheDayService { [OperationContract] string GetJoke(int jokeStrength); }
94 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; } }
95 Windows Phone Запуск службы в Visual Studio 95
96 Windows Phone Описание службы 96
97 Windows Phone Создание ссылки на службу 97
98 Windows Phone Создание прокси-объекта 98 NewsOfTheDayService.NewsOfTheDayServiceClient newsclient; // Конструктор public MainPage() { InitializeComponent(); newsclient = new NewsOfTheDayService.NewsOfTheDayServiceClient(); jokeService.GetDataCompleted += new EventHandler (newsclient _GetJokeCompleted); }
99 Windows Phone Вывод результатов 99 void newsclient_GetDataCompleted(object sender, NewsOfTheDayService.GetDataCompletedEventArgs e) { if (!e.Cancelled) { newsTextBlock.Text = e.Result; } }
100 Windows Phone Вызов метода службы 100 private void getNewsButton_Click(object sender, RoutedEventArgs e) { int category = 0; if (int.TryParse(strengthTextBox.Text, out category)) { newsclient.GetJokeAsync(category); } }
101 Windows Phone Краткие итоги 101
Еще похожие презентации в нашем архиве:
© 2024 MyShared Inc.
All rights reserved.