ACC2000: Exemplos de duas que usam o controle ActiveX do Winsock

Traduções deste artigo Traduções deste artigo
ID do artigo: 209905 - Exibir os produtos aos quais esse artigo se aplica.
Avançadas: Requer especialista de codificação, interoperabilidade e habilidades de multiusuário.

Este artigo se aplica somente a um banco de dados do Microsoft Access (.mdb).

Expandir tudo | Recolher tudo

Neste artigo

Sumário

Este artigo apresenta dois exemplos de como usar o controle ActiveX de Winsock instalado com o Microsoft Office 2000 Developer Edition Tools.

Mais Informações

O controle Winsock permite que você se conecte a um computador e troca o dados remoto entre computadores cliente e servidor. O controle do Winsock oferece suporte a dois protocolos: TCP (Transmission Control Protocol) e UDP (User Datagram Protocol).

O TCP é um protocolo de conexão. Uma analogia comum usada para descrever TCP é que um telefone. Nessa analogia, chamadores devem estabelecer uma conexão nas duas extremidades da linha telefônica antes que eles possam trocar informações. Um computador usando TCP deve receber a confirmação do computador receptor que uma conexão foi estabelecida antes que os dois computadores podem transferir dados.

O UDP é um protocolo sem conexão. Uma analogia comum usada para descrever o UDP é de um rádio. Nessa analogia, uma estação de rádio transmite seu sinal sem saber com certeza se alguém está escutando. Um computador usando UDP envia dados e não requer uma conexão com o computador na extremidade de recepção da transmissão de.

Exemplo 1 - usando o controle ActiveX do Winsock com o TCP

Este exemplo usa o mesmo computador para enviar e receber dados. Criar um formulário com três controles de Winsock. Um dos controles emula o ambiente do computador cliente para enviar uma solicitação de conexão para um servidor. Os dois controles emulam o ambiente em um computador servidor: um controle escuta de uma solicitação de conexão e o outro aceita a solicitação quando se trata.
  1. Crie um novo banco de dados em branco chamado WinsockDemo.mdb.
  2. Criar o seguinte novo formulário (não baseado em qualquer tabela ou consulta) no modo de design:
       Form: TCPForm
       ---------------------------------
       Caption: TCP Form
    
       Command button:
          Name: cmdListen
          Caption: Listen
       Command button:
          Name: cmdConnect
          Caption: Establish Connection
       Command button:
          Name: cmdSend
          Caption: Send Data
       Command button:
          Name: cmdRespond
          Caption: Respond
       Command button:
          Name: cmdClose
          Caption: Close Connection
       Text box:
          Name: Text1
          Label Caption: Data Received:
       Winsock control:
          Name: axWinsockListen
       Winsock control:
          Name: axWinsockClient
       Winsock control:
          Name: axWinsockServer
    					
  3. No menu Exibir , clique em código .
  4. Digite a seguinte linha na seção Declaração do módulo de classe do formulário:
    Dim wsListen, wsClient, wsServer As Winsock
    					
  5. Digite os procedimentos a seguir.

    Para ilustrar ideal como o controle Winsock funciona entre cliente e servidor, os procedimentos são listados na ordem em que eles ocorrem.
    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
    					
  6. Salve e feche TCPForm.
  7. Abra TCPForm no modo de formulário e executar as seguintes tarefas:
    1. Clique no botão de escuta para iniciar o servidor de escuta de uma solicitação de conexão.

      Observe a caixa de mensagem que aparece para indicar que o servidor está aguardando uma conexão.
    2. Clique no botão Estabelecer conexão .

      Observe a caixa de mensagem do cliente verificar que a conexão foi bem-sucedida e a caixa de mensagem do servidor verificando a solicitação foi aceita.
    3. Clique no botão Enviar dados e observe que a mensagem de cliente "Hello" aparece na caixa de texto no formulário.
    4. Clique no botão responder e observe que a mensagem de servidor "Obrigada para a mensagem!" é exibida na caixa de texto.
    5. Clique no botão Close Connection e observe as caixas de mensagem do cliente e servidor indicando que as conexões foram fechadas.

Exemplo 2 - usando o controle ActiveX do Winsock com UDP

Este exemplo usa o mesmo computador para enviar e receber dados. Você criar um formulário com dois controles de Winsock: um dos controles emula o computador cliente e o outro controle emula o servidor.
  1. Crie um novo banco de dados em branco chamado WinsockDemo.mdb ou use o banco de dados criado no exemplo anterior.
  2. Criar o seguinte novo formulário (não baseado em qualquer tabela ou consulta) no modo de design:
       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
    					
  3. No menu Exibir , clique em código .
  4. Digite a seguinte linha na seção Declaração do módulo de classe do formulário:
    Dim wsClient, wsServer As Winsock
    					
  5. Digite os procedimentos a seguir.

    Para ilustrar ideal como o controle Winsock funciona entre cliente e servidor, os procedimentos estão listados na ordem em que eles ocorrem.
    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
    					
  6. Salve e feche o formulário UDPForm.
  7. Abra UDPForm no modo de formulário e clique no botão Enviar dados .

    Observe que a caixa de texto exibe "Hello". Como esta é uma transmissão sem conexão, não é necessário estabelecer uma conexão de cliente / servidor.

Propriedades

ID do artigo: 209905 - Última revisão: segunda-feira, 28 de junho de 2004 - Revisão: 2.0
A informação contida neste artigo aplica-se a:
  • Microsoft Access 2000 Standard Edition
Palavras-chave: 
kbmt kbhowto kbinfo kbusage KB209905 KbMtpt
Tradução automática
IMPORTANTE: Este artigo foi traduzido por um sistema de tradução automática (também designado por Machine Translation ou MT), não tendo sido portanto traduzido ou revisto por pessoas. A Microsoft possui artigos traduzidos por aplicações (MT) e artigos traduzidos por tradutores profissionais, com o objetivo de oferecer em português a totalidade dos artigos existentes na base de dados de suporte. No entanto, a tradução automática não é sempre perfeita, podendo conter erros de vocabulário, sintaxe ou gramática. A Microsoft não é responsável por incoerências, erros ou prejuízos ocorridos em decorrência da utilização dos artigos MT por parte dos nossos clientes. A Microsoft realiza atualizações freqüentes ao software de tradução automática (MT). Obrigado.
Clique aqui para ver a versão em Inglês deste artigo: 209905

Submeter comentários

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com