|
Программирование >> Автоматически обновляемые приложения
Глава 16 Локальная сеть и Интернет Интернет-технологии по-прежнему являются очень динамично развивающимся направлением в компьютерной индустрии. Появляются новые протоколы, развиваются браузеры, появляются новые способы взаимодействия пользователей. Также развиваются местные локальные сети внутри предприятий. Поэтому сетевое программирование является очень важной частью в работе программиста. Знание некоторых приемов программирования сетей всегда пригодится любому разработчику. В этой книге не будут рассматриваться аспекты работы с ASP.NET, так как изучение этой технологии достойно отдельной книги. Но мы рассмотрим более простые приемы. Информация о сети Сначала рассмотрим некоторые вопросы, связанные с определением конфигурации сети, адресов компьютера и т. п. Как получить хост, порт, протокол из веб-адреса? с помощью класса System. UriBuilder МОЖНО легКО ПОЛучИТЬ необхОДИМуЮ информацию о хосте, порте, используемом протоколе и другие данные. Пример показан в листинге 16.1. Гпцизгшг ШЛ, lAmmHwm информации из веб-адреса private void buttonl Click(object sender, EventArgs e) { UriBuilder ubuild = new UriBuilder ((a http: Wrusproject. narod. ru: 80 ) ; j Листинг 16.2* Создаииф уникального идентификатора ресурсов ii;..,;,;.v.i i.......................................................................................... ................ .....i...........................-.......................................i...,...... f UriBuilder builder = new UriBuilder( http: rusproject.narod.ru/ ) ; builder.Path = index.htm ; builder.Fragment = main ; Uri myUri = builder.Uri; MessageBox.Show(builder.ToString()); Примечание Пример работы с классом UriBuilder находится В папке URI на прилагаемом диске. Как получить IP-адрес компьютера, используя DNS? с помощью метода GetHostEntry класса Net.Dns МОЖНО получить 1Р-адрес компьютера, используя его имя, которые мы обычно вводим в браузер. Пример показан в листинге 16.3. Листинг 16.3. Получение 0М8*имени компьютера private void butGetDNS Click(object sender, EventArgs e) { System.Net.IPHostEntry host; MessageBox.Show(ubuild.Host); MessageBox.Show(ubuild.Port.ToString 0) ; MessageBox.Show(ubuild.Scheme); MessageBox.Show(ubuild.Uri.ToStringO); С помощью данного класса таюке можно создавать URI (универсальный идентификатор ресурсов) из составляющих элементов. Например, имеется адрес сайта, имя файла и фрагмент. Свойство Fragment содержит любой текст, который следует за маркером фрагмента (знаком #) в UR1, включая сам маркер. При установлении свойства Fragment данный маркер также добавляется к его значению. В листинге 16.2 показано создание URI http: rusproject.narod.rU/index.htm#main. Листинг 16.4. Получение ЫЕТВЮ8*имени компькэтера ...............i...........................................i.......................... private void butGetNETBIOS Click(object sender, EventArgs e) { MessageBox.Show(Environment.MachineName); Как получить IP-адрес локальной машины? Для получения IP-адреса локальной машины достаточно указать пустую строку при использовании метода GetHostEntry (листинг 16.5). Листинг 16.5. Получение (Рдреса локальной машины private void butGetLocalIP Click(object sender, EventArgs e) string strip = ; System.Net.IPHostEntry host; host = System.Net.Dns.GetHostEntry(strip); host = System.Net.Dns.GetHostEntry( yandex.ru ); foreach (System.Net.IPAddress ip in host.AddressList) { MessageBox.Show(ip.ToString()); В результате выполнения кода мы получим список IP-адресов указанного сайта. Теперь попробуйте ввести эти адреса непосредственно в браузер, чтобы убедиться в работоспособности кода. Таюке с помощью этого метода можно выполнять и обратное преобразование. Обратите внимание, что этот метод введен в .NET Framework 2.0, где он дополняет и заменяет устаревший метод GetHostByName ИЗ библиотеки классов .NET Framework 1.1. Как получить NETBIOS-имя машины? Для получения имени NETBIOS локальной машины используется свойство Envinronment .MachineName (ЛИСТИНГ 16.4).
|
© 2006 - 2024 pmbk.ru. Генерация страницы: 0
При копировании материалов приветствуются ссылки. |