Главная Случайная страница


Полезное:

Как сделать разговор полезным и приятным Как сделать объемную звезду своими руками Как сделать то, что делать не хочется? Как сделать погремушку Как сделать так чтобы женщины сами знакомились с вами Как сделать идею коммерческой Как сделать хорошую растяжку ног? Как сделать наш разум здоровым? Как сделать, чтобы люди обманывали меньше Вопрос 4. Как сделать так, чтобы вас уважали и ценили? Как сделать лучше себе и другим людям Как сделать свидание интересным?


Категории:

АрхитектураАстрономияБиологияГеографияГеологияИнформатикаИскусствоИсторияКулинарияКультураМаркетингМатематикаМедицинаМенеджментОхрана трудаПравоПроизводствоПсихологияРелигияСоциологияСпортТехникаФизикаФилософияХимияЭкологияЭкономикаЭлектроника






Использование протокола UDP





Создадим приложение для демонстрации использования протокола UDP. На рис. 13.4 представлена форма UDP-приложения в режиме разработки.

Рис. 13.4

Форма приложения для UDP-обмена в режиме разработки

Тип элемента Свойство, которое изменено (используется в коде) Значение Примечание
UserForm Caption Server_Client Заголовок формы
  ControlBox False Кнопки управления формой не нужны.
Frame Name Frame3 Фрейм, объединяющий элементы настроек.
Text Name Text1 Окно для указания номера порта приема.
Text Name Text2 Окно для указания имени (IP-адреса) удаленного компьютера.
Text Name Text3 Окно для указания номера порта передачи.
CommandButton Name CmdSetup Кнопка для установки портов и имени удаленного компьютера.
  Caption Установить  
  Enabled False Сразу после загрузки формы кнопка недоступна.
Frame Name Frame1 Фрейм, объединяющий элементы для передачи данных.
  Caption Передаваемая информация  
TextBox Name txtOutPut Окно для передаваемых «собеседнику» данных.
  MultiLine True Окно — многострочное.
CommandButton Name CmdSend Кнопка для передачи данных «собеседнику».
  Caption Передать Заголовок на кнопке
Frame Name Frame2  
  Caption Принятая информация  
TextBox Name txtInPut Окно для принятых данных данных.
  MultiLine True Окно — многострочное.
Winsock Name udpPeer  
CommandButton Name CmdExit Кнопка для закрытия приложения.
  Caption Выход  

В листинге 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), принимает от пользователя данные для доступа в систему и запросы на получение информации из банка, отображает результаты запросов, проводит операции по снятию денег со счетов.

Date: 2015-09-25; view: 297; Нарушение авторских прав; Помощь в написании работы --> СЮДА...



mydocx.ru - 2015-2024 year. (0.006 sec.) Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав - Пожаловаться на публикацию