Είσοδος

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

ΣΗΜΑΝΤΙΚΟ: Αυτό το άρθρο είναι προϊόν λογισμικού μηχανικής μετάφρασης της Microsoft και όχι ανθρώπινης μετάφρασης. Η Microsoft σάς προσφέρει άρθρα που είναι προϊόντα ανθρώπινης αλλά και μηχανικής μετάφρασης έτσι ώστε να έχετε πρόσβαση σε όλα τα άρθρα της Γνωσιακής Βάσης μας στη δική σας γλώσσα. Ωστόσο, ένα άρθρο που έχει προκύψει από μηχανική μετάφραση δεν είναι πάντα άριστης ποιότητας. Ενδέχεται να περιέχει λεξιλογικά, συντακτικά ή γραμματικά λάθη, όπως ακριβώς τα λάθη που θα έκανε ένας μη φυσικός ομιλητής επιχειρώντας να μιλήσει τη γλώσσα σας. Η Microsoft δεν φέρει καμία ευθύνη για τυχόν ανακρίβειες, σφάλματα ή ζημίες που προκύψουν λόγω τυχόν παρερμηνειών στη μετάφραση του περιεχομένου ή χρήσης του από τους πελάτες της. Επίσης, η Microsoft πραγματοποιεί συχνά ενημερώσεις στο λογισμικό μηχανικής μετάφρασης.

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

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

Προειδοποίηση: Αυτό το άρθρο είναι μεταφρασμένο αυτόματα

Ιδιότητες

Αναγνωριστικό άρθρου: 209905 - Τελευταία αναθεώρηση: 01/11/2015 02:04:55 - Αναθεώρηση: 2.0

  • Microsoft Access 2000 Standard Edition
  • kbnosurvey kbarchive kbhowto kbinfo kbusage kbmt KB209905 KbMtel
Σχόλια