Entrar

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

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.

209905
Este artigo foi arquivado. É oferecido "como está" e não será mais atualizado.
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).

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 = 99End SubPrivate Sub cmdListen_Click()   ' Start the server listening for a connection request.   wsListen.Listen   Msgbox "Server is waiting for a connection request."End SubPrivate Sub cmdConnect_Click()   ' The client requests a connection with the server.   Msgbox "Client requested connection with server."   wsClient.ConnectEnd SubPrivate 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 SubPrivate 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 SubPrivate Sub cmdSend_Click()   ' After a connection is established, use a command button to send   ' data from client to server.   wsClient.SendData "Hello"End SubPrivate 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 = strClientMsgEnd SubPrivate Sub cmdRespond_Click()   ' Send a message from the server to the client.   wsServer.SendData "Thanks for the message!"End SubPrivate 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 = strServerMsgEnd SubPrivate Sub cmdClose_Click()   ' Close the server connections   wsServer.Close   wsListen.Close   Msgbox "Server connections closed."End SubPrivate 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 1007End SubPrivate Sub CmdSend_Click()   ' Send a broadcast message from the server.   wsServer.SendData "Hello"End SubPrivate 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 = strServerMsgEnd 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.
ODE

Aviso: Este artigo foi traduzido automaticamente

Propriedades

ID do Artigo: 209905 - Última Revisão: 01/11/2015 02:05:00 - Revisão: 2.0

  • Microsoft Access 2000 Standard Edition
  • kbnosurvey kbarchive kbmt kbhowto kbinfo kbusage KB209905 KbMtpt
Comentários