Private Sub cmdСonnect_Click ( )
⇐ ПредыдущаяСтр 2 из 2 sckClient.Connect "Q4", 1001 ' Параметры метода Connect могут быть 'опущены End Sub 6. Прием и передача данных. После установления соединения передачу данных может осуществить как клиент, так и сервер. Ниже приведен пример передачи данных, содержащихся в текстовом буфере txtSendData, клиентом: Private Sub cmdSend () SckClient.SendData txtSendData.Text End Sub Прием осуществляется, используя событие Data Arrival, с помощью метода GetData. Ниже приведен пример приема данных сервером в текстовый буфер txtInput.Text: Private Sub sckServer_ Data Arrival (ByVal bytesTotal As Long) Dim strData As String SckServer.GetData strData txtOutput.Text = strData End Sub Примечание 1. Параметр bytesTotal, процедуры события DataArrival, указывает на количество пришедших байт. Примечание2. Процедуры передачи и приема могут находиться и в клиенте, и в сервере.
7. Работа Winsock по протоколу UDP. Различают два способа программирования сервера и клиента по протоколу UDP: "несимметричное" программирование, когда имеет значение кто первым начнет передачу, и "симметричное" программирование, когда не имеет значение кто первым начнет передачу.
Рассмотрим " несимметричное " программирование. Пусть приложение – клиент первым обращается к приложению – сервер. В этом случае, в приложении – клиент должны быть указаны следующие свойства Winsock: Remote Host и Remote Port, т.е. полностью определен сокет удаленного сервера. В приложении - сервер необходимо использовать метод Bind, в параметрах которого требуется указать локальный порт (Local Port), который будет использован приложением – сервер. Безусловно, Remote Port, указанный в приложении – клиенте, должен совпадать со значением параметра Local Port, указанного в приложении – сервер.
Примечание. 1. При запуске приложения – сервер используется метод Bind, который осуществляет привязку своего локального порта со своим IP – адресом. Кроме того, он переводит состояние сокета в sckOpen –"открыто". 2. Сокет приложения – клиента переходит в состояние "открыто" при выполнении метода Send. 3. После первой передачи сообщения от клиента серверу, передача может происходить в обоих направлениях (используя методы Get Data и Send с обеих сторон).
Рассмотрим " симметричное " программирование. Для этого случая и приложение – клиент и приложение – сервер программируются одинаково. В обоих приложениях устанавливаются свойства Winsock: Remote Host и Remote Port и вызывается метод Bind.
Примечание. 1. При таком программировании узлы полностью равноправны и могут передавать сообщения друг другу в любом направлении, используя методы Send и Get Data. 2. При обращении клиента к другому серверу по протоколу UDP нужно изменить только Remote Host и Remote Port. При использовании протокола TCP клиенту необходимо закрыть соединение, а затем заново открыть новое.
III. Вопросы к лабораторной работе. 1). В чем разница в между протоколами TCP и UDP? В каких случаях следует использовать TCP, а в каких UDP? 2). Будет ли работать приложение, если установить разные значения свойства RemoteHost и соответствующего ему параметра метода Connect?, свойства RemotePort и соответствующего ему параметра метода Connect? 3). В каком диапазоне целых чисел лежат номера RemotePort? 4). Winsock имеет свойство LocalIP, по которому в режиме Run можно получить IP-адрес своего компьютера. Модифицируйте программу (протокол TCP) так, чтобы клиент, зная сетевое имя сервера, мог получить его IP-адрес. 5). Какие параметры Winsock устанавливает операционная система, а какие программист при симметричном и несимметричном программировании протокола UDP? 6) Как осуществить топологию межмашинного соединения типа "звезда" по протоколу UDP? Проведите эксперимент для "несимметричного" программирования.
IV. Требования к оформлению отчета. Отчет должен содержать: - текст задания; - схему взаимодействия сервера и клиента по протоколу TCP и UDP; - и листинги процедур сервера и клиента по протоколу TCP и UDP; - письменные ответы на вопросы.
Воспользуйтесь поиском по сайту: ![]() ©2015 - 2025 megalektsii.ru Все авторские права принадлежат авторам лекционных материалов. Обратная связь с нами...
|