Сетевое программирование в .NET. Расшифровка IP-адреса (IP address specification). Обеспечение надежности доставки пакетов, страница 29

toolStripCombo.Items.Add("http://localhost/intro15.htm");

toolStripCombo.SelectedIndex = 0;

Если в вашей системе установлена служба IIS (Internet Information Services), то файл iisstart.htm должен присутствовать в директории С:\Inetpub\wwwroot, которая считается корневой для вашего Web-сервера. Она имеет псевдоним localhost, который считается стартовым адресом (URL) Web-сервера. Второй HTML-документ с именем intro15 мы сейчас создадим в студии и запишем в ту же директорию.

¨  Добавьте к проекту TrySocket новый компонент типа HTML Page с именем Clock.htm.

¨  Поместите в этот файл следующий HTML-код, который взят из предыдущего курса лекций ASP.NET. Отмечу, что новая версия HTML потребовала внести некоторые коррективы (язык стал более строгим).

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">

<html xmlns="http://www.w3.org/1999/xhtml"><head><title>Live Clock</title>

<script type="text/jscript">

function SetDate()

{

now = new Date();

hours = now.getHours();

minutes = now.getMinutes();

seconds = now.getSeconds();

clock.time.value = hours + (minutes < 10 ? ":0" : ":") + minutes +

(seconds < 10 ? ":0" : ":") + seconds;

day = now.getDate();

month = now.getMonth() + 1;

year = now.getYear();

clock.date.value = day +"."+ (month < 10 ? "0" : "") + month +"."+ year;

setTimeout (SetDate, 1000);

}

function Move()

{

clock.time.style.pixelLeft -= 7;

clock.time.style.pixelTop++;

timerID = setTimeout ("Move()", 10);

if (clock.time.offsetLeft < clock.date.offsetLeft)

{

clock.time.style.posLeft = clock.date.style.posLeft;

clock.time.style.posTop = 60;

clearTimeout(timerID);

}

}

</script></head>

<body onload="SetDate()" onclick="Move()">

<form action="http://localhost/Clock.htm" id="clock">

<input type="text" readonly="readonly" style="BORDER: #00ff00 ridge; FONT-WEIGHT: bold;

FONT-SIZE: 24px; LEFT: 75%; WIDTH: 150px; COLOR: Lime; POSITION: absolute;

BACKGROUND-COLOR: black; TEXT-ALIGN: center" id="time"/>

<input type="text" readonly="readonly" style="BORDER: #ffccff ridge; FONT-WEIGHT: bold;

FONT-SIZE: 24px; LEFT: 5%; WIDTH: 150px; COLOR:#ffccff; POSITION: absolute;

BACKGROUND-COLOR: black; TEXT-ALIGN: center" id="date"/>

</form></body></html>

¨  Перенесите копию этого файла в корневую папку сервера.

¨  Вновь откройте файл MainForm.cs в режиме редактирования кода и для объекта toolStripCombo создайте обработчик события SelectedIndexChanged.

¨  В тело обработчика вставьте код, который устанавливает документ-источник для нашего браузера.

browser.Url = new Uri(toolStripCombo.SelectedItem.ToString());

¨  Для того, чтобы форма не бездействовала при загрузке, добавьте реакцию на событие Load и в тело обработчика вставьте код, загружающий в браузер другой HTML-документ

browser.Url = new Uri("http://localhost/iisstart.htm");

¨  Сделайте новый проект стартовым и запустите на выполнение.

¨  Выберите в списке адрес нашего документа и вы должны увидеть окно примерно такого вида.

¨  Щелкните левой кнопкой в клиентской области окна и наблюдайте работу кода на языке JScript.

Признаемся, что удобство и мощь нового компонента WebBrowser производит сильное впечатление. Но при чем здесь класс Socket, спросите вы. Действительно, в этом сценарии он не нужен. Покажем, как использовать его для получения HTML-текста нашего документа. Зададимся целью отобразить полученный текст на форме в рамках элемента типа RichTextBox.

¨  Освободите место для элемента RichTextBox. Для этого установите режим причаливания браузера к верхней части формы (свойство Dock должно стать равным Top).