Элемент управления Winsock позволяет подключаться к удаленному компьютеру и
обмен данными между клиентские и серверные компьютеры. Winsock
элемент управления поддерживает два протокола: Transmission Control Protocol (TCP)
и протокол User Datagram Protocol (UDP).
TCP — это протокол на основе подключения. Распространенные аналогию, используемый для описания TCP
в том, что телефон. Эта аналогия вызывающие объекты должны установить
подключения на обоих концах телефонной линии, прежде чем они могут обмениваться
сведения. Компьютер, используя TCP необходимо получать подтверждения от принимающий компьютер, подключение было установлено до двух компьютеров можно передавать данные.
UDP — это протокол без установления соединения. Распространенные аналогия, используемый для описания UDP
радио. В Эта аналогия радиостанция передает сигнал не зная точно, если любой пользователь слушает. Компьютер с помощью
UDP отправляет данные и не требует подключения к компьютеру на
принимающая сторона передачи.
Пример 1: использование элемента управления ActiveX Winsock с TCP
Чтобы отправлять и получать данные в этом примере используется тот же компьютер. Вы
Создание формы с три элемента управления Winsock. Один из элементов эмулирует
Клиентская среда компьютера для отправки запроса на подключение к
сервер. Два других элемента управления имитировать среду на сервере
компьютер: один элемент управления принимает запрос на подключение, а другой
Когда речь заходит о принимает запрос.
Создайте новую пустую базу данных с именем WinsockDemo.mdb.
Создайте следующую новую форму (не основан на таблице или запросе) в режиме конструктора:
В разделе объявлений модуля класса формы введите следующую строку:
Dim wsListen, wsClient, wsServer As Winsock
Введите следующие процедуры.
Демонстрация оптимальную работу элемента управления Winsock между клиентом и сервером, процедуры, перечислены в том порядке, в котором они расположены.
Private Sub Form_Load()
' Set one server Winsock control and the client Winsock control
' when the form loads.
Set wsListen = Me!axWinsockListen.Object
Set wsClient = Me!axWinsockClient.Object
' Set the protocol for each control.
wsListen.Protocol = sckTCPProtocol
wsClient.Protocol = sckTCPProtocol
' Set the remote host on the client Winsock control. Because
' client and server are the same computer in this example, set
' RemoteHost equal to LocalIP.
wsClient.RemoteHost = wsListen.LocalIP
' Set a local and a remote port for the client.
wsClient.RemotePort = 100
wsClient.LocalPort = 99
' Set a local and a remote port for the server. Note that the
' server RemotePort is the client LocalPort and vice versa.
wsListen.LocalPort = 100
wsListen.RemotePort = 99
End Sub
Private Sub cmdListen_Click()
' Start the server listening for a connection request.
wsListen.Listen
Msgbox "Server is waiting for a connection request."
End Sub
Private Sub cmdConnect_Click()
' The client requests a connection with the server.
Msgbox "Client requested connection with server."
wsClient.Connect
End Sub
Private Sub axWinsockListen_ConnectionRequest(ByVal requestID As _
Long)
' When the server receives a connection request, set the second
' Winsock on the server to accept the request.
Set wsServer = Me!axWinsockServer.Object
wsServer.Protocol = sckTCPProtocol
' Accept the connection request.
wsServer.Accept requestID
Msgbox "Server accepted client connection request."
End Sub
Private Sub axWinsockClient_Connect()
' When the server accepts the connection request, the Connect
' event fires on the client. Display a message indicating success.
MsgBox "Connection Successful!"
End Sub
Private Sub cmdSend_Click()
' After a connection is established, use a command button to send
' data from client to server.
wsClient.SendData "Hello"
End Sub
Private Sub axWinsockServer_DataArrival(ByVal bytesTotal As Long)
Dim strClientMsg As String
' The DataArrival event fires on the server when the client sends
' information. Get the data and display it in a text box.
wsServer.GetData strClientMsg, vbString
Me!Text1.Value = strClientMsg
End Sub
Private Sub cmdRespond_Click()
' Send a message from the server to the client.
wsServer.SendData "Thanks for the message!"
End Sub
Private Sub axWinsockClient_DataArrival(ByVal bytesTotal As Long)
Dim strServerMsg As String
' The DataArrival event fires on the client when the server sends
' information. Get the data and display it in a text box.
wsClient.GetData strServerMsg
Me!Text1.Value = strServerMsg
End Sub
Private Sub cmdClose_Click()
' Close the server connections
wsServer.Close
wsListen.Close
Msgbox "Server connections closed."
End Sub
Private Sub axWinsockClient_Close()
' Close event on client fires after server closes connection.
' Close the client connection and display a message box.
wsClient.Close
MsgBox "Client connections closed. Good-Bye!"
End Sub
Сохраните и закройте TCPForm.
Откройте TCPForm в режиме формы и выполнять следующие задачи:
Нажмите кнопку Прослушивание Кнопка для запуска сервера в прослушивание запросов на подключение.
Следует иметь в виду окно сообщения, которое отображается, чтобы показать, что сервер ожидает подключения.
Нажмите кнопку Установить соединение Нажатие кнопки.
Следует иметь в виду, в окне сообщения от клиента, проверка, что подключение выполнено успешно и окно сообщения с сервера, проверка, что запрос был принят.
Нажмите кнопку Отправка данных кнопки и обратите внимание, что клиент сообщение «Hello» отображается в текстовом поле на форме.
Нажмите кнопку Ответить кнопки и обратите внимание, что в текстовом поле выводится сообщение сервера «Спасибо за сообщение!».
Нажмите кнопку Закрытие подключения кнопки и примечание, диалоговые окна сообщения от клиента и сервера, указывающее, что подключения был закрыт.
Пример 2 - Использование элемента управления ActiveX Winsock с UDP
Чтобы отправлять и получать данные в этом примере используется тот же компьютер. Вы
Создайте форму с двумя элементами управления Winsock: эмулирует элемента управления
клиентский компьютер и элемент управления эмулирует сервера.
Создайте новую пустую базу данных с именем WinsockDemo.mdb, или использовать базу данных, созданную в предыдущем примере.
Создайте следующую новую форму (не основан на таблице или запросе) в режиме конструктора:
Form: UDPForm
--------------------------------
Caption: UDP Form
Command button:
Name: cmdSend
Caption: Send Data
Text box:
Name: Text1
Label Caption: Data Received:
Winsock control:
Name: axWinsockClient
Winsock control:
Name: axWinsockServer
На Представление меню, нажмите кнопку Код.
В разделе объявлений модуля класса формы введите следующую строку:
Dim wsClient, wsServer As Winsock
Введите следующие процедуры.
Демонстрация оптимальную работу элемента управления Winsock между клиентом и сервером, процедуры, перечислены в том порядке, в котором они расположены.
Private Sub Form_Load()
' Set the control objects when the form loads.
Set wsClient = Me!axWinsockClient.Object
Set wsServer = Me!axWinsockServer.Object
' Set the protocol for client and server.
wsClient.Protocol = sckUDPProtocol
wsServer.Protocol = sckUDPProtocol
' Set the host and ports for client and server. Because client
' and server are the same computer in this example, set RemoteHost
' equal to LocalIP.
wsServer.RemoteHost = wsClient.LocalIP
wsServer.RemotePort = 1007
wsClient.Bind 1007
End Sub
Private Sub CmdSend_Click()
' Send a broadcast message from the server.
wsServer.SendData "Hello"
End Sub
Private Sub axWinsockClient_DataArrival(ByVal bytesTotal As Long)
Dim strServerMsg As String
' When a message arrives from the server, display it in a text
' box.
wsClient.GetData strServerMsg, vbString
Me!Text1.Value = strServerMsg
End Sub
Сохраните и закройте форму UDPForm.
Откройте UDPForm в режиме формы и нажмите кнопку Отправка данных Нажатие кнопки.
Обратите внимание, что в текстовом поле отображается «Hello». Поскольку передачи без установления соединения, нет необходимости устанавливать соединения клиент сервер.
Код статьи: 209905 - Последнее изменение :: 4 июня 2011 г. - Редакция: 4.0
Информация в данной статье относится к следующим продуктам.
Microsoft Access 2000 Standard Edition
Ключевые слова:
kbhowto kbinfo kbusage kbmt KB209905 KbMtru
Переведено с помощью машинного перевода
ВНИМАНИЕ! Перевод данной статьи был выполнен не человеком, а с помощью программы машинного перевода, разработанной корпорацией Майкрософт. Корпорация Майкрософт предлагает вам статьи, переведенные как людьми, так и средствами машинного перевода, чтобы у вас была возможность ознакомиться со статьями базы знаний KB на родном языке. Однако машинный перевод не всегда идеален. Он может содержать смысловые, синтаксические и грамматические ошибки, подобно тому как иностранец делает ошибки, пытаясь говорить на вашем языке. Корпорация Майкрософт не несет ответственности за неточности, ошибки и возможный ущерб, причиненный в результате неправильного перевода или его использования. Корпорация Майкрософт также часто обновляет средства машинного перевода.
Спасибо! Благодаря вашему отзыву мы сможем сделать справочные материалы еще лучше. Чтобы воспользоваться дополнительными возможностями поддержки, посетите домашнюю страницу центра справки и поддержки.