КАТЕГОРИИ: Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748) |
Внешний вид окна и начальные действия
Создание каркаса приложения Создание сетевого приложения Класс CAsyncSocket Класс CAsyncSocket инкапсулирует асинхронные вызовы Winsock. Он содержит набор полезных функций, использующих Winsock API(табл.4.1).
Таблица 4.1 Методы класса CasyncSocket
В качестве примера сетевого приложения создадим диалоговое приложение, которое сможет работать либо в качестве сервера, либо в качестве клиента. Это позволит проверить созданное приложение, если запустить две копии приложения, по одной на каждом конце соединения. Эти две копии или могут быть расположены на одном компьютере, или же одна из копий может быть установлена на другом компьютере, тогда два приложения будут работать на различных компьютерах, передавая сообщения по сети. После этого можно проверить созданное приложение в работе. После того как между приложениями будет установлено соединение, можно передавать сообщения от одного приложения другому. После того как сообщение послано, оно будет добавлено в список переданных сообщений. В свою очередь каждое полученное сообщение будет помещено в список всех полученных сообщений. Это позволит затем сравнить списки полученных и посланных сообщений и убедиться, что они совпадают. Создаем новый MFC-проект с помощью мастера приложений AppWisard и даем этому проекту имя, например, Sock. На первом шаге указывается, что приложение будет диалоговым, на втором шаге не забываем указать, что приложение будет использовать поддержку для Windows Socket. Далее выбираем кнопку Finish. После того как создан каркас приложения, приступаем к созданию внешнего вида окна. Здесь нужно создать набор радиокнопок, с помощью которых можно установить параметры приложения, а именно, является ли данная копия приложения клиентской или серверной. Затем нам понадобится пара окон для редактирования текста, в которых мы будем указывать имя компьютера и номер порта, на котором будет слушать сервер. Нам нужна командная кнопка, которая будет заставлять сервер приступать к прослушиванию на сокете или же заставлять клиента устанавливать соединение с сервером, а также кнопка, которая позволит закрывать соединение. Кроме того, нам понадобится окно для редактирования текста, в которое мы будем вводить сообщение, предназначенное для передачи другому приложению, и кнопка, которая будет осуществлять такую передачу. Наконец, нужно иметь пару окон для списка, в которые будут помещаться переданные и полученные сообщения. Расположим все эти элементы управления в соответствии с тем, как показано на рис.4.1, а свойства элементов управления зададим в соответствии с табл.4.2.
Рис.4.1. Расположение элементов управления Таблица 4.2 Параметры элементов управления
После того как основа диалогового окна сконструирована, открываем «Матер классов» и создаем переменные для элементов контроля в соответствии с переменными элементов управления (табл.4.3). Таблица 4.3 Переменные элементов управления
Чтобы иметь возможность использовать кнопку CONNECT повторно и поставить приложение-сервер "прослушивать" в ожидании соединения, нужно вставить функцию к радиокнопкам; текст, изображаемый на командной кнопке, зависит от того, какая выбрана радиокнопка. Чтобы вставить требуемую функцию, соответствующую сообщению о событии BN_CLICKED для идентификатора IDC_RCLIENT, используем имя функции OnRType. Вставим такую же функцию для события BN_CLICKED для элемента управления с идентификатором IDC_RSERVER. Функция имеет вид: void CSockDlg::OnRType() { //Синхронизируем элементы управления в соответствии с переменными UpdateDate(TRUE); //В каком мы режиме? if (m_iType == 0) //Устанавливаем текст на кнопке m_ctlConnect.SetWindowText("C&onnect"); else m_ctlConnect.SetWindowText("&Listen");} Если сейчас скомпилировать и запустить приложение, можно будет выбирать режим работы приложения с помощью двух кнопок, а текст, появляющийся на командной кнопке, будет меняться в зависимости от того, какой установлен режим.
Дата добавления: 2014-11-29; Просмотров: 438; Нарушение авторских прав?; Мы поможем в написании вашей работы! Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет |