ACC2000: Δύο παραδείγματα που χρησιμοποιούν το στοιχείο ελέγχου ActiveX Winsock

Μεταφράσεις άρθρων Μεταφράσεις άρθρων
Αναγν. άρθρου: 209905 - Δείτε τα προϊόντα στα οποία αναφέρεται το συγκεκριμένο άρθρο.
Για προχωρημένους: Απαιτεί ειδικό κωδικοποίησης, διαλειτουργικότητας και ικανότητες πολλών χρηστών.

Αυτό το άρθρο αφορά μόνο βάσεις δεδομένων της Microsoft Access (.mdb).

Ανάπτυξη όλων | Σύμπτυξη όλων

Σε αυτήν τη σελίδα

Περίληψη

Αυτό το άρθρο παρέχει δύο παραδείγματα του τρόπου χρήσης του στοιχείου ελέγχου Winsock ActiveX εγκατασταθεί με το Microsoft Office 2000 Developer Edition Tools.

Περισσότερες πληροφορίες

Το στοιχείο ελέγχου Winsock σάς επιτρέπει να συνδέσετε ένα απομακρυσμένο υπολογιστή και την ανταλλαγή δεδομένων μεταξύ υπολογιστών και υπολογιστή-πελάτη και διακομιστή. Το στοιχείο ελέγχου Winsock υποστηρίζει δύο πρωτόκολλα: Transmission Control Protocol (TCP) και User Datagram Protocol (UDP).

TCP είναι ένα πρωτόκολλο που βασίζεται σε σύνδεση. Μια συνηθισμένη analogy χρησιμοποιείται για να περιγράψει TCP είναι το τηλέφωνο. Σε αυτό το analogy καλούντες πρέπει να δημιουργήσει μια σύνδεση και στα δύο άκρα της τηλεφωνικής γραμμής, πριν αυτά να ανταλλάσσουν πληροφορίες. Ένας υπολογιστής που χρησιμοποιεί το πρωτόκολλο TCP πρέπει να λάβετε επιβεβαίωση από τον υπολογιστή-παραλήπτη που έχει μια σύνδεση δημιουργήθηκε πριν από δύο υπολογιστές μπορεί να μεταφέρει δεδομένα.

UDP είναι ένα πρωτόκολλο χωρίς σύνδεση. Μια συνηθισμένη analogy χρησιμοποιείται για να περιγράψει UDP είναι ότι από ένα ραδιόφωνο. Σε αυτό το analogy ένα ραδιοφωνικό σταθμό εκπέμπει το σήμα χωρίς να γνωρίζετε ότι για το αν κάποιος κάνει ακρόαση. Ένας υπολογιστής που χρησιμοποιεί UDP στέλνει δεδομένα και δεν απαιτεί μια σύνδεση με τον υπολογιστή στο άκρο λήψης της μετάδοσης.

Παράδειγμα 1 - η χρήση του στοιχείου ελέγχου ActiveX Winsock TCP

Αυτό το παράδειγμα χρησιμοποιεί τον ίδιο υπολογιστή για να στείλετε και να λάβετε δεδομένα. Μπορείτε να δημιουργήσετε μια φόρμα με τρία στοιχεία ελέγχου Winsock. Ένα από τα στοιχεία ελέγχου εξομοιώνει το περιβάλλον του υπολογιστή πελάτη για να στείλετε μια αίτηση σύνδεσης σε ένα διακομιστή. Τα άλλα δύο στοιχεία ελέγχου να εξομοιώσει το περιβάλλον σε έναν υπολογιστή διακομιστή: ένα στοιχείο ελέγχου να αναμένει μια αίτηση σύνδεσης και ο άλλος αποδέχεται την αίτηση, όταν βγαίνει.
  1. Δημιουργήστε μια νέα κενή βάση δεδομένων που ονομάζεται WinsockDemo.mdb.
  2. Δημιουργήστε την ακόλουθη νέα φόρμα (που δεν βασίζεται σε πίνακα ή ερώτημα) σε προβολή σχεδίασης:
       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. Στο διακομιστήViewμενού, κάντε κλικ στο κουμπίΚωδικός.
  4. Πληκτρολογήστε την ακόλουθη γραμμή στην ενότητα δήλωση της λειτουργικής μονάδας κλάσης της φόρμας:
    Dim wsListen, wsClient, wsServer As Winsock
    					
  5. Πληκτρολογήστε τις ακόλουθες διαδικασίες.

    Για τον καλύτερο δυνατό τρόπο απεικονίζουν τον τρόπο λειτουργίας του στοιχείου ελέγχου 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
    					
  6. Αποθηκεύστε και κλείστε το TCPForm.
  7. Ανοίξτε το TCPForm σε προβολή φόρμας και να εκτελέσετε τις παρακάτω εργασίες:
    1. Κάντε κλικ στην καρτέλαΑκρόασηΓια να ξεκινήσετε το διακομιστή σε ακρόαση για μια αίτηση σύνδεσης.

      Σημειώστε το πλαίσιο μηνύματος που εμφανίζεται για να υποδείξετε ότι ο διακομιστής είναι σε αναμονή για σύνδεση.
    2. Κάντε κλικ στην καρτέλαΔημιουργία σύνδεσηςτο κουμπί.

      Σημειώστε το πλαίσιο μηνύματος από το πρόγραμμα-πελάτης επαληθεύει ότι η σύνδεση πραγματοποιήθηκε με επιτυχία και το πλαίσιο μηνύματος από το διακομιστή επιβεβαιώνει ότι η αίτηση έγινε αποδεκτή.
    3. Κάντε κλικ στην καρτέλαΑποστολή δεδομένωνκουμπί και παρατηρήστε ότι εμφανίζεται το μήνυμα προγράμματος-πελάτη "Hello" στο πλαίσιο κειμένου της φόρμας.
    4. Κάντε κλικ στην καρτέλαΑπόκρισηκουμπί και Σημειώστε ότι εμφανίζεται το μήνυμα διακομιστή "Ευχαριστούμε για το μήνυμα!" στο πλαίσιο κειμένου.
    5. Κάντε κλικ στην καρτέλαΚλείσιμο σύνδεσηςκουμπί και σημειώστε το μήνυμα πλαίσια από υπολογιστή-πελάτη και διακομιστή, που υποδηλώνει ότι έχουν κλείσει τις συνδέσεις.

Παράδειγμα 2 - η χρήση του στοιχείου ελέγχου ActiveX Winsock UDP

Αυτό το παράδειγμα χρησιμοποιεί τον ίδιο υπολογιστή για να στείλετε και να λάβετε δεδομένα. Μπορείτε να δημιουργήσετε μια φόρμα με δύο στοιχεία ελέγχου Winsock: ένα από τα στοιχεία ελέγχου εξομοιώνει τον υπολογιστή-πελάτη και το άλλο στοιχείο ελέγχου εξομοιώνει το διακομιστή.
  1. Δημιουργήστε μια νέα κενή βάση δεδομένων που ονομάζεται WinsockDemo.mdb, ή να χρησιμοποιήσετε τη βάση δεδομένων που δημιουργήσατε στην προηγούμενη παράδειγμα.
  2. Δημιουργήστε την ακόλουθη νέα φόρμα (που δεν βασίζεται σε πίνακα ή ερώτημα) σε προβολή σχεδίασης:
       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. Στο διακομιστήViewμενού, κάντε κλικ στο κουμπίΚωδικός.
  4. Πληκτρολογήστε την ακόλουθη γραμμή στην ενότητα δήλωση της λειτουργικής μονάδας κλάσης της φόρμας:
    Dim wsClient, wsServer As Winsock
    					
  5. Πληκτρολογήστε τις ακόλουθες διαδικασίες.

    Για τον καλύτερο δυνατό τρόπο απεικονίζουν τον τρόπο λειτουργίας του στοιχείου ελέγχου 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
    					
  6. Αποθηκεύστε και κλείστε τη φόρμα UDPForm.
  7. Άνοιγμα UDPForm σε προβολή φόρμας και κάντε κλικ στοΑποστολή δεδομένωντο κουμπί.

    Σημειώστε ότι το πλαίσιο κειμένου εμφανίζει "Hello". Επειδή αυτή είναι μια μετάδοση χωρίς σύνδεση, δεν χρειάζεται να πραγματοποιήσετε μια σύνδεση υπολογιστή-πελάτη-διακομιστή.

Ιδιότητες

Αναγν. άρθρου: 209905 - Τελευταία αναθεώρηση: Δευτέρα, 27 Σεπτεμβρίου 2010 - Αναθεώρηση: 2.0
Οι πληροφορίες σε αυτό το άρθρο ισχύουν για:
  • Microsoft Access 2000 Standard Edition
Λέξεις-κλειδιά: 
kbhowto kbinfo kbusage kbmt KB209905 KbMtel
Μηχανικά μεταφρασμένο
ΣΗΜΑΝΤΙΚΟ: Αυτό το άρθρο είναι προϊόν λογισμικού μηχανικής μετάφρασης της Microsoft και όχι ανθρώπινης μετάφρασης. Η Microsoft σάς προσφέρει άρθρα που είναι προϊόντα ανθρώπινης αλλά και μηχανικής μετάφρασης έτσι ώστε να έχετε πρόσβαση σε όλα τα άρθρα της Γνωσιακής Βάσης μας στη δική σας γλώσσα. Ωστόσο, ένα άρθρο που έχει προκύψει από μηχανική μετάφραση δεν είναι πάντα άριστης ποιότητας. Ενδέχεται να περιέχει λεξιλογικά, συντακτικά ή γραμματικά λάθη, όπως ακριβώς τα λάθη που θα έκανε ένας μη φυσικός ομιλητής επιχειρώντας να μιλήσει τη γλώσσα σας. Η Microsoft δεν φέρει καμία ευθύνη για τυχόν ανακρίβειες, σφάλματα ή ζημίες που προκύψουν λόγω τυχόν παρερμηνειών στη μετάφραση του περιεχομένου ή χρήσης του από τους πελάτες της. Επίσης, η Microsoft πραγματοποιεί συχνά ενημερώσεις στο λογισμικό μηχανικής μετάφρασης.
Η αγγλική έκδοση αυτού του άρθρου είναι η ακόλουθη:209905

Αποστολή σχολίων

 

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