ACC2000: Esempi di due che utilizzano il controllo ActiveX di Winsock

Traduzione articoli Traduzione articoli
Identificativo articolo: 209905 - Visualizza i prodotti a cui si riferisce l?articolo.
Avanzate: Richiede la codifica degli esperti, interoperabilità e competenze multiutente.

Il contenuto di questo articolo è applicabile solo ai database Microsoft Access (mdb).

Espandi tutto | Chiudi tutto

In questa pagina

Sommario

In questo articolo vengono forniti due esempi di come utilizzare il controllo di Winsock ActiveX installato con Microsoft Office 2000 Developer Edition Tools.

Informazioni

Il controllo Winsock consente di connettersi a un computer e lo scambio di dati remote tra computer sia client e server. Il controllo Winsock supporta due protocolli: TCP (Transmission Control Protocol) e UDP (User Datagram Protocol).

TCP è un protocollo basato su connessione. Un analogia comune utilizzato per descrivere TCP è un telefono. In questa analogia, è necessario che i chiamanti stabilire una connessione su entrambe le estremità della linea telefonica prima di potersi scambiare informazioni. Un computer che utilizza TCP deve ricevere conferma dal computer ricevente che una connessione è stata stabilita prima i due computer possono trasferire i dati.

UDP è un protocollo senza connessione. Un analogia comune utilizzato per descrivere UDP è una radio. In questa analogia, una stazione radio trasmette il segnale senza conoscere certezza se chiunque è in ascolto. Un computer utilizzando UDP invia i dati e non richiede una connessione con il computer sul lato ricevente della trasmissione.

Esempio 1 - utilizzo del controllo di ActiveX Winsock con TCP

In questo esempio utilizza lo stesso computer sia inviare e ricevere dati. Viene creato un form con tre controlli di Winsock. Uno dei controlli emula l'ambiente di computer client per inviare una richiesta di connessione a un server. I due controlli emulano l'ambiente in un computer server: un controllo è in attesa di una richiesta di connessione e l'altro accetta la richiesta quando si tratta.
  1. Consente di creare un nuovo database vuoto denominato WinsockDemo.mdb.
  2. Creare il seguente nuovo modulo, non in qualsiasi tabella o query, in visualizzazione struttura:
       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. Scegliere codice dal menu Visualizza .
  4. Digitare la seguente riga nella sezione dichiarazioni del modulo di classe:
    Dim wsListen, wsClient, wsServer As Winsock
    					
  5. Digitare le seguenti procedure.

    Per illustrare in modo ottimale il Winsock funzionamento del controllo tra client e server, le procedure sono elencate nell'ordine in cui compaiono.
    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. Salvare e chiudere TCPForm.
  7. Aprire TCPForm in visualizzazione Maschera e le seguenti operazioni:
    1. Fare clic sul pulsante elenchi per avviare il server in attesa di una richiesta di connessione.

      Nota la finestra di messaggio visualizzata per indicare che il server è attendere che una connessione.
    2. Fare clic sul pulsante Connessione stabilita .

      Nota finestra di messaggio dal client che verifica che la connessione sia stata completata correttamente e la finestra di messaggio dal server verifica che la richiesta è stata accettata.
    3. Fare clic sul pulsante Invia dati e si noti che nella casella di testo nel modulo verrà visualizzato il messaggio di client "Hello".
    4. Fare clic sul pulsante Rispondi e osservare che il messaggio di server "Grazie per il messaggio!" viene visualizzato nella casella di testo.
    5. Fare clic sul pulsante Chiudi connessione e osservare le caselle di messaggio da client e server che indica che le connessioni sono stati chiusi.

Esempio 2 - Utilizzo del controllo di ActiveX Winsock con UDP

In questo esempio utilizza lo stesso computer sia inviare e ricevere dati. Si crea una maschera con due controlli di Winsock: uno dei controlli emula il computer client e l'altro controllo emula il server.
  1. Creare un nuovo database vuoto denominato WinsockDemo.mdb oppure utilizzare il database creato nell'esempio precedente.
  2. Creare il seguente nuovo modulo, non in qualsiasi tabella o query, in visualizzazione struttura:
       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. Scegliere codice dal menu Visualizza .
  4. Digitare la seguente riga nella sezione dichiarazioni del modulo di classe:
    Dim wsClient, wsServer As Winsock
    					
  5. Digitare le seguenti procedure.

    Per illustrare in modo ottimale il Winsock funzionamento del controllo tra client e server, le procedure sono elencate nell'ordine in cui si verificano.
    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. Salvare e chiudere il modulo UDPForm.
  7. Aprire UDPForm in visualizzazione di form e fare clic sul pulsante Invia dati .

    Si noti che la casella di testo è visualizzato "Hello". Poiché si tratta di una trasmissione senza connessione, non è necessario stabilire una connessione client / server.

Proprietà

Identificativo articolo: 209905 - Ultima modifica: lunedì 28 giugno 2004 - Revisione: 2.0
Le informazioni in questo articolo si applicano a:
  • Microsoft Access 2000 Standard Edition
Chiavi: 
kbmt kbhowto kbinfo kbusage KB209905 KbMtit
Traduzione automatica articoli
Il presente articolo è stato tradotto tramite il software di traduzione automatica di Microsoft e non da una persona. Microsoft offre sia articoli tradotti da persone fisiche sia articoli tradotti automaticamente da un software, in modo da rendere disponibili tutti gli articoli presenti nella nostra Knowledge Base nella lingua madre dell?utente. Tuttavia, un articolo tradotto in modo automatico non è sempre perfetto. Potrebbe contenere errori di sintassi, di grammatica o di utilizzo dei vocaboli, più o meno allo stesso modo di come una persona straniera potrebbe commettere degli errori parlando una lingua che non è la sua. Microsoft non è responsabile di alcuna imprecisione, errore o danno cagionato da qualsiasi traduzione non corretta dei contenuti o dell?utilizzo degli stessi fatto dai propri clienti. Microsoft, inoltre, aggiorna frequentemente il software di traduzione automatica.
Clicca qui per visualizzare la versione originale in inglese dell?articolo: 209905
LE INFORMAZIONI CONTENUTE NELLA MICROSOFT KNOWLEDGE BASE SONO FORNITE SENZA GARANZIA DI ALCUN TIPO, IMPLICITA OD ESPLICITA, COMPRESA QUELLA RIGUARDO ALLA COMMERCIALIZZAZIONE E/O COMPATIBILITA' IN IMPIEGHI PARTICOLARI. L'UTENTE SI ASSUME L'INTERA RESPONSABILITA' PER L'UTILIZZO DI QUESTE INFORMAZIONI. IN NESSUN CASO MICROSOFT CORPORATION E I SUOI FORNITORI SI RENDONO RESPONSABILI PER DANNI DIRETTI, INDIRETTI O ACCIDENTALI CHE POSSANO PROVOCARE PERDITA DI DENARO O DI DATI, ANCHE SE MICROSOFT O I SUOI FORNITORI FOSSERO STATI AVVISATI. IL DOCUMENTO PUO' ESSERE COPIATO E DISTRIBUITO ALLE SEGUENTI CONDIZIONI: 1) IL TESTO DEVE ESSERE COPIATO INTEGRALMENTE E TUTTE LE PAGINE DEVONO ESSERE INCLUSE. 2) I PROGRAMMI SE PRESENTI, DEVONO ESSERE COPIATI SENZA MODIFICHE, 3) IL DOCUMENTO DEVE ESSERE DISTRIBUITO INTERAMENTE IN OGNI SUA PARTE. 4) IL DOCUMENTO NON PUO' ESSERE DISTRIBUITO A SCOPO DI LUCRO.

Invia suggerimenti

 

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