Мир программирования на Visual BASIC и HTML
Информация
  SnoozeX Design
  VB Проекты
  Архив рассылки
  Рассылка

Спонсоры
  Городской кот
  Subscribe.Ru
  Russian Surf

Ссылки
  VB Streets
  Visual BASIC
  VB: Step by Step
  SnoozeX Design
  СообЧа

VB Форумы
WEB:
  VBS Форум
  Ru.Visual.Basic
Mail:
  VBStreets
  СообЧа: VB
  подписка - пустое   письмо в VB группу

Доска почета
  Sergey VIMBERG
  Олег
  Oleg Palayda

Вопросы
  Автору
  По VB
  По HTML

Кнопки

Рассылка 'Мир программирования на Visual BASIC и HTML.'

мы в режиме:

SUPERTOP

SnoozeX Design
Несколько слов от автора: Здравствуйте. Вот подготовил вам очередной выпуск рассылки. На сегодняшний день дела у нее идут (летят, плывут :) ) очень хорошо. На днях меня настигла одна идея: а не содать ли нам конфу по VB, чтобы каждый поучавствовал в проекте? Свои ответы на этот вопрос присылайте свои ответы по приведеной ниже форме.
Ваши пожелания:


E-Mail для ответа:   

ПРИМЕЧАНИЕ: Выпуски данной рассылки начиная с первого вы сможете прочитать на http://subscribe.ru/archive/comp.design.snoozex/    @LEXis

4.02.2001 Выпуск N17 Обзор ведет @LEXis

 Сегодня в выпуске:

# Практикум на примерах
:
Использование Winsock контрола (Часть 2)
# В разделе "вопросы/ответы":
Ответы на вопросы читателей
# Рубрика "Объявления"


 Практикум на примерах
Использование Winsock контрола (Часть 2)

Основы UDP.

Создавать приложения, использующие UDP протокол проще, чем создавать приложения, использующие TCP протокол. Дело в том, что UDP не требует уже установленного соединения, как необходимого условия для передачи данных. В приложениях использующих TCP соединение,
один Winsock элемент должен обязательно "слушать" порт, в ожидании пока какое-нибудь другое приложение не станет инициатором соединения, использовав метод Connect.
UDP протокол не требует обязательно установленного соединения для передачи данных. Для передачи данных между двумя приложениями, необходимо выполнить три следующих пункта с обеих соединяющихся сторон:

- присвоить свойству RemoteHost дружественное имя или IP-адрес компьютера с которым предстоит соединение;
- установить свойство RemotePort для LocalPort property of the second control.
- Вызвать метод Bind указав какой локальный порт будет использоваться (метод Bind подробнее будет обсужден ниже).

Т.к. оба компьютера полагаются равными в установлении соединения, мы можем назвать это соединение peer-to-peer. Чтобы продемонстрировать
это соединение мы создадим так называемое приложение-chat позволяющее двум людям общаться в реальном режиме времени.

Для создания UDP соединения:

Создайте Standard EXE проект.

- Измените свойство name формы на frmPeerA.
- Измените свойство caption формы на "Peer A"
- Перетащите с панели инструментов иконку Winsock компонента и разместите его на форме. Присвойте свойству name значение udpPeerA.
- Измените свойство Protocol на UDPProtocol.
- Добавьте два текстовых поля на форму.
Имя первой должно быть txtSend а второй txtOutput.

Добавьте приведенный ниже код на форму.

Private Sub Form_Load()
' Имя Winsock элемента udpPeerA
With udpPeerA
' Важно: правильно укажите значение RemoteHost
' компьютера, с которым предстоит соединение.
.RemoteHost= "PeerB"
.RemotePort = 1001 ' Имя порта для соединения.
.Bind 1002 ' Привязка к локальному порту.
End With
frmPeerB.Show ' Показать вторую форму.
End Sub

Private Sub txtSend_Change()
' Послать текст, как только он будет набран.
udpPeerA.SendData txtSend.Text
End Sub

Private Sub udpPeerA_DataArrival _
(ByVal bytesTotal As Long)
Dim strData As String
udpPeerA.GetData strData
txtOutput.Text = strData
End Sub

Чтобы создать второе UDP приложение.

- Добавить стандартную форму в проект.
- Изменить имя формы на frmPeerB.
- Изменить свойство caption формы на "Peer B".
- Перетащить и разместить иконку Winsock компонента на форму.
- Изменить имя Winsock на udpPeerB.
- Изменить свойство Protocol на UDPProtocol.
- Добавить два текстовых поля на форму.
Имя первого должно быть txtSend, а второго txtOutput.

Добавьте следующий код в форму.

Private Sub Form_Load()
' Имя Winsock элемента udpPeerB.
With udpPeerB
' Будьте внимательны указывая имя или IP-адрес
' компьютера с которым предстоит соединение.
.RemoteHost= "PeerA"
.RemotePort = 1002 ' Номер порта для соединения.
.Bind 1001 ' Привязка к локальному порту.
End With
End Sub

Private Sub txtSend_Change()
' Пересылать текст, как только он будет набран в текстовом поле.
udpPeerB.SendData txtSend.Text
End Sub

Private Sub udpPeerB_DataArrival _
(ByVal bytesTotal As Long)
Dim strData As String
udpPeerB.GetData strData
txtOutput.Text = strData
End Sub

Чтобы попробовать приложение запустите проект, и наберите в текстовом поле txtSend каждой формы какой-то текст.
Этот текст появится в текстовых полях txtOutput другой формы.

О методе Bind.

Как показано в приведенном выше примере, Вы должны вызывать метод Bind, когда создается UDP приложение. Метод Bind
резервирует локальный порт для использования его элементом Winsock. Например, когда Вы привязываете свой элемент Winsock к порту 1001,
то ни одно другое приложение не может использовать этот порт для прослушивания. Это может быть полезным, когда Вы хотите
воспрепятствовать какому-либо другому приложению использовать этот порт.

Метод Bind имеет еще один необязательный аргумент.
Если на вашем компьютере установлено более одного сетевого адаптера, аргумент LocalIP позволит Вам точно указать
адаптер, который необходимо использовать. Если Вы не укажите этот аргумент, то Winsock компонент будет использовать
тот сетевой адаптер, который расположен первым в списке, который можно посмотреть в Пуск\Настройка\Панель управления\
Система\Сетевые платы.

Когда используется UDP протокол, Вы можете изменять свойства RemoteHost и RemotePort пока сохраняется привязка
к тому же самому LocalPort. Если бы Вы использовали TCP протокол, то прежде чем сменить свойства RemoteHost и RemotePort,
необходимо сначала закрыть соединение.

С вопросами по тексту статьи обращаться к Oleg Palayda


 Вопросы / Ответы
Вопрос от Виктора Турбова
Есть проект, я его откомпилировал.
Необходимо, чтобы, в какой-то функции можно было менять строки или блоки и не компилировать после этого программу. А программа выглядела как откомпилированная.
Т.е создать как-бы модуль подстройки текста.

Можно ли такое сделать?
Вопрос от @LEXis`a
Здравствуйте,
Кто-нить помогите, хочу поподробнее изучить работу VB с базами данных и екселем. Плиз, пришлите что-нибудь на эту тему. И еще как сделать поиск в строках с документами екселя.


 Объявления
Требуются люди
Хочу напомнить, что еще пусты многие вакансии рассылки:
- Рубрика "Рецензия книг"
- Рубрика "Практикум на примерах"
Также можно просто присылать коды.

Код моей кнопки:

<!-- SnoozeX Design "PLAY" -->
<a href="http://snoozex.boom.ru" TARGET="_blank"><BR><IMG SRC="http://snoozex.boom.ru/new.gif" WIDTH=88 HEIGHT=31 BORDER=1 ALT="SnoozeX Design"></a>
<!-- SnoozeX Design "END" -->

Выпуск подготовили:                    
Oleg Palayda
@LEXis
@LEXis ICQ uin : 14912636
Подписаться на рассылку Кувалина Алексея
Мир программирования на Visual BASIC и HTML
© 2000 - 2001 @LEXis & Design by SnoozeX Design
Рассылка является составной частью проекта "СообЧа - СООБщество ЧАйников"
Сайт СообЧа: http://www.soobcha.ru/
СООБщество ЧАйников: Обмен опытом, вопросы, ответы на ваши вопросы, FAQ, почтовые группы - советуем всем.
Подписаться на сообщество
© 2000 - 2001 СообЧа (СООБщество ЧАйников)
Спасибо за внимание. Ваш @LEXis

 

Home ] Up ] О группе ] Статьи ] Исходники ] Орфография ] Приёмы ] Проекты ]

Хостинг от uCoz