Полезное:
Как сделать разговор полезным и приятным
Как сделать объемную звезду своими руками
Как сделать то, что делать не хочется?
Как сделать погремушку
Как сделать так чтобы женщины сами знакомились с вами
Как сделать идею коммерческой
Как сделать хорошую растяжку ног?
Как сделать наш разум здоровым?
Как сделать, чтобы люди обманывали меньше
Вопрос 4. Как сделать так, чтобы вас уважали и ценили?
Как сделать лучше себе и другим людям
Как сделать свидание интересным?
Категории:
АрхитектураАстрономияБиологияГеографияГеологияИнформатикаИскусствоИсторияКулинарияКультураМаркетингМатематикаМедицинаМенеджментОхрана трудаПравоПроизводствоПсихологияРелигияСоциологияСпортТехникаФизикаФилософияХимияЭкологияЭкономикаЭлектроника
|
Использование протокола UDP ⇐ ПредыдущаяСтр 3 из 3 Создадим приложение для демонстрации использования протокола UDP. На рис. 13.4 представлена форма UDP-приложения в режиме разработки. Рис. 13.4 Форма приложения для UDP-обмена в режиме разработки
В листинге 13.3 представлен код модуля формы приложения, который демонстрирует основные правила работы с протоколом UDP. Поскольку данное приложение можно использовать как приложение-сервер, так и приложение-клиент, данные для установления связи удобно задавать в режиме выполнения. Для этого предназначены текстовые окна, помеченные метками Порт для приема, Удаленный компьютер и Порт удаленного компьютера, и кнопка Установить. Кнопка Установить сразу после загрузки формы недоступна, поскольку данные в текстовые окна настроеек попадают не сразу. Процедуры обработки событий для текстовых окон настроек изменяют значение переменной SetupEnabled — как только значение этой переменной станет равным значению 3, кнопка становится Установить доступной (строки 60, 68 и 76). На самом деле, это, конечно, не защитит приложение от случаев, когда, например, информация в окнах будет введена и тут же отменена, но вы, по крайней мере, должны задуматься над своим собственным способом надежного ввода и настройки данных для связи между приложениями.
Листинг 13.3 Код модуля формы приложения-клиента 1: Option Explicit 2: 3: Dim SetupEnabled As Integer 'переменная для управления CmdSetup 4: 5: Private Sub Form_Load() 6: 7: SetupEnabled = 0 8: udpPeer.Protocol = sckUDPProtocol 9: 10: End Sub 11: 12: Private Sub CmdSetup_Click() 13: ' установка параметров соединения 14: 15: 'порт для приема данных: 16: If Len(Trim(Text1.Text)) > 0 Then _ 17: udpPeer.Bind Text1.Text 18: 'имя (IP-адрес) удаленного компьютера: 19: If Len(Trim(Text2.Text)) > 0 Then _ 20: udpPeer.RemoteHost = Text2.Text 21: 22: 'удаленный порт: 23: If Len(Trim(Text3.Text)) > 0 Then _ 24: udpPeer.RemotePort = Text3.Text 25: 26: End Sub 27: 28: Private Sub CmdSend_Click() 29: ' отправить данные клиенту: 30: 31: udpPeer.SendData txtOutPut.Text 32: 33: End Sub 34: 35: 36: Private Sub udpPeer_DataArrival(ByVal bytesTotal As Long) 37: 38: Dim strData As String 39: 40: ' принять данные от клиента: 41: udpPeer.GetData strData 42: 43: ' отобразить принятые данные в текстовом окне: 44: txtInPut.Text = strData 45: 46: End Sub 47: 48: 49: Private Sub CmdExit_Click() 50: ' закрыть приложение: 51: 52: Unload Me 53: 54: End Sub 55: 56: ' процедуры для активизации кнопки передачи данных 57: Private Sub Text1_Change() 58: 59: SetupEnabled = SetupEnabled + 1 60: If SetupEnabled = 3 Then CmdSetup.Enabled = True 61: 62: End Sub 63: 64: 65: Private Sub Text2_Change() 66: 67: SetupEnabled = SetupEnabled + 1 68: If SetupEnabled = 3 Then CmdSetup.Enabled = True 69: 70: End Sub 71: 72: 73: Private Sub Text3_Change() 74: 75: SetupEnabled = SetupEnabled + 1 76: If SetupEnabled = 3 Then CmdSetup.Enabled = True 77: 78: End Sub В строке 8 задается протокол обмена — UDP, поскольку по умолчанию используется TCP. Процедура CmdSetup_Click (строки 12–26), используя, быть может, заполненные окна, определяет основные свойства элемента Winsock. Остальные элементы кода листинга, практически, не отличаются от тех, что представлены в листингах 13.1 и 13.2. После установления параметров соединения приложение готово передавать и принимать данные. На рис. 13.5 представлены диалоговые окна приложений, имеющих один и тот же исходный код и выполняющихся на одном компьютере (в случае обмена между двумя компьютерами в окнах Удаленный компьютер необходимо было бы ввести различные имена компьютеров). Рис. 13.5 Сеанс UDP-связи приложений-собеседников
[1] Примером такой системы может служить двухуровневая система банкоматов, которая состоит из приложения-сервера, хранящего данные о клиентах в базе данных (Access, SQL Server и т.д.), и приложений-клиентов, поддерживающих оборудование банкоматов, посредством которых клиенты банка взаимодействуют с банком. Обычно такие приложения выполняют следующие задачи. Приложение-сервер ожидает подключения приложений-клиентов, проверяет права доступа, выдает клиентам информацию об их счете и другие сведения, позволяет администратору просматривать, доавлять/удалять клиентов (банка) в базу данных. Приложение-клиент соединяется с приложением-сервером (по TCP), принимает от пользователя данные для доступа в систему и запросы на получение информации из банка, отображает результаты запросов, проводит операции по снятию денег со счетов.
|