Отправляет email-рассылки с помощью сервиса Sendsay
  Все выпуски  

Уроки по программированию. Visual C++, MFC, VB, ActiveX


Служба Рассылок Subscribe.Ru

Visual Basic. Элементы управления. Уроки по программированию с сайта http://alexeev.nm.ru

Рассылка №11

Visual Basic. Элементы управления. Урок 1. WinSock - создание сервера.
Visual Basic. Элементы управления. Урок 2. WinSock - создание клиента.
Visual Basic. Элементы управления. Урок 3. WinSock - обмен данными.

Visual Basic. Элементы управления. Урок 1. WinSock - создание сервера

В этом и последующих уроках мы посмотрим, как использовать элемент WinSock. Его предназначение - обмен данными между компьютерами. Т. е. мы посмотрим, как можно сделать сетевое приложение.

Запускаем Visual Basic и создаем проект типа Standard EXE. Добавим на панель элементов WinSock (по умолчанию его там нет). Для этого заходим в меню Project, далее выбираем Components. В появившемся диалоге Components выделяем строку Microsoft WinSock Control 6.0 и затем нажимаем на OK. На панели элементов появится наш WinSock.

Перетаскиваем его двойным щелчком на форму и устанавливаем свойства Name в wskServer и LocalPort в 2000 (номер порта можно взять любой больше чем 1024 - до этого числа номера портов зарезервированы).

Теперь добавим на форму кнопку cmdListen и для неё напишем следующий код:

Private Sub cmdListen_Click()
  wskServer.Listen
End Sub

В этом коде наш сервер начинает слушать. Слушет он всех - кто первый подсоединится, тот и успел. Вообще схема такая: после того, как сервер начинает слушать, кто-то (клиент) посылает запрос на соединение. Когда запрос приходит, то сервер должен обработать его так:

Private Sub wskServer_ConnectionRequest(ByVal requestID As Long)
  If wskServer.State <> sckClosed Then
    wskServer.Close
  End If
  wskServer.Accept requestID 'принимаем запрос на соединение
  frmServer.Caption = "Запрос на соединение" 'эту строку можно и не писать, но так нагляднее
End Sub

С частью, отвечающей за соединение, мы справились. Теперь пишем код по приемке данных (сервер у нас будет принимать данные, но в принципе может и отправлять). Добавьте на форму текстовое поле и переименуйте его в txtData. Далее добавьте следующий код:

Private Sub wskServer_DataArrival(ByVal bytesTotal As Long)
  Dim strData As String 'заводим переменную для прибывших данных
  wskServer.GetData strData, vbString, bytesTotal 'серверный WinSock записывает данные в strData
  txtData.Text = strData 'данные записываются в txtData
End Sub

С серверной частью все. В следующем уроке займемся клиентом.

Наверх

Visual Basic. Элементы управления. Урок 2. WinSock - создание клиента

Теперь займемся клиентом. Создайте простой проект типа Standard EXE, затем добавьте на форму WinSock (переименуйте его в wskClient), две кнопочки (cmdConnect и cmdSend) и текстовое поле (txtData).

Теперь код. Он должен быть таким:

Option Explicit
Private Sub cmdConnect_Click()
  wskClient.Connect "127.0.0.1", 2000 ' подсоединяемся к серверу (локальному)
End Sub
Private Sub cmdSend_Click()
  wskClient.SendData txtData ' посылка данных из txtData серверу
End Sub

Пара слов по коду. Сначала клиент подсоединяется к серверу:

...
  wskClient.Connect "127.0.0.1", 2000
 ...

Здесь первый параметр - это IP-адрес сервера. Мы берём локальный адрес. Второй параметр - номер порта на сервере (его на прошлом уроке мы установили равным 2000).

С клиентом все. Теперь будем смотреть, как все это работает.

Наверх

Visual Basic. Элементы управления. Урок 3. WinSock - обмен данными

Теперь смотрим клиента и сервер в действии. Запустите сразу и клиентскую и серверную части (в двух экземплярах Visual Basic). Нажимаем на кнопку Listen у сервера.

Сервер начинает слушать. Переходим к клиенту. У него нажимаем на Connect.

Сервер слышит запрос и устанавливает соединение (видим по его заголовку).

Теперь на клиенте печатаем что-нибудь в текством поле и нажимаем на Send.

Сервер получает эти данные.

Вот и все!

Наверх

© Алексеев Игорь, 2001

© Сайт alexeev.nm.ru, 2001


http://subscribe.ru/
E-mail: ask@subscribe.ru
Отписаться
Убрать рекламу

В избранное