ACC2000: Winsock ActiveX denetimini kullanan iki örnekleri

Makale çevirileri Makale çevirileri
Makale numarası: 209905 - Bu makalenin geçerli olduğu ürünleri görün.
Gelişmiş: Uzman kodlama, birlikte çalışabilirlik ve çok kullanıcılı becerileri gerektirir.

Bu makale yalnızca Microsoft Access veritabanı (.mdb) için geçerlidir.

Hepsini aç | Hepsini kapa

Bu Sayfada

Özet

Bu makalede, Microsoft Office 2000 Developer Edition Araçları yüklü Winsock ActiveX denetimi nasıl iki örnekleri sağlar.

Daha fazla bilgi

Winsock denetimi uzak bilgisayarı ve exchange verilerini hem istemci hem de sunucu bilgisayarlar arasında bağlanmanızı sağlar. Winsock denetimi iki iletişim kuralını destekler: iletim Denetimi Protokolü (TCP) ve Kullanıcı Datagram Protokolü (UDP).

TCP bir bağlantı tabanlı bir protokoldür. TCP açıklamak için kullanılan yaygın bir analogy telefon olmasıdır. Bilgi değişimi önce bu analogy içinde bir bağlantının her iki ucunun bir telefon hattı Arayanların kurmalısınız. Bir bilgisayarın, TCP kullanarak bir bağlantı alıcı bilgisayardan onayını almak iki bilgisayar verilerini transfer edebilirsiniz önce kuruldu.

UDP bir bağlantısız iletişim kuralıdır. UDP açıklamak için kullanılan yaygın bir analogy bir radyo olmasıdır. Bu analogy varsa, herkesin dinliyor emin bilmeden bir radyo istasyonu, sinyal yayınlar. UDP kullanan BIR bilgisayar, veri gönderen ve alıcı iletimi sonuna bilgisayarıyla bağlantı gerektirmez.

Örnek 1 - TCP ile Winsock ActiveX denetimini kullanma

Bu örnek, aynı bilgisayarda hem veri göndermek ve almak için kullanır. Bir form, üç Winsock denetimleriyle oluşturun. Denetimlerden biri, bir sunucuya bir bağlantı isteği göndermek için bir istemci bilgisayar ortamında öykünür. Ortamı bir sunucu bilgisayardaki diğer iki denetim öykünme: bir denetim için bir bağlantı isteği dinler ve de diğer isteği kabul eder.
  1. WinsockDemo.mdb adlı yeni bir boş veritabanı oluşturun.
  2. Tasarım görünümünde (herhangi bir tablo veya sorguya dayalı olmayan) aşağıdaki yeni form oluştur:
       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. Görünüm menüsünde kodu ' ı tıklatın.
  4. Formun sınıf modülünün Beyanname bölümüne aşağıdaki satırı yazın:
    Dim wsListen, wsClient, wsServer As Winsock
    					
  5. Aşağıdaki yordamlar yazın.

    En iyi şekilde Winsock denetim, istemci ile sunucu arasında nasıl çalıştığını göstermek için <a0></a0>, yordamlar, ortaya çıktığı sırada listelenir.
    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. Kaydedip TCPForm kapatın.
  7. TCPForm Form görünümünde açın ve aşağıdaki görevleri gerçekleştirin:
    1. Bağlantı isteği dinleme sunucuyu Başlat dinleme düğmesini tıklatın.

      Sunucu bir bağlantı için bekliyor belirtmek için görüntülenen ileti kutusunda unutmayın.
    2. Ağımdaki bir bağlantı düğmesini tıklatın.

      Ileti kutusu istemciden bağlantı başarılı olduğunu doğrulamak ve ileti kutusu isteği kabul edildi doğrulama sunucusundan unutmayın.
    3. Verileri Gönder</a0> düğmesini tıklatın ve "Merhaba" istemci iletinin formdaki <a1>metin</a1> kutusunda görünür.
    4. Yanıtla düğmesini tıklatın ve "İletisi için teşekkürler!" sunucu iletinin metin kutusunda görüntülendiğini unutmayın.
    5. Close bağlantı düğmesini tıklatın ve hem istemci, hem de sunucu bağlantıları kapatılan gösteren ileti kutularını not edin.

Örnek 2 - Winsock ActiveX denetimi ile UDP kullanmayı...

Bu örnek, aynı bilgisayarda hem veri göndermek ve almak için kullanır. Iki Winsock denetimi form oluşturma: denetimlerinin istemci bilgisayar öykünür ve sunucu başka bir denetime öykünür.
  1. WinsockDemo.mdb adlı yeni boş bir veritabanı oluşturmak veya önceki örnekte oluşturduğunuz veritabanı'nı kullanın.
  2. Tasarım görünümünde (herhangi bir tablo veya sorguya dayalı olmayan) aşağıdaki yeni form oluştur:
       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. Görünüm menüsünde kodu ' ı tıklatın.
  4. Formun sınıf modülünün Beyanname bölümüne aşağıdaki satırı yazın:
    Dim wsClient, wsServer As Winsock
    					
  5. Aşağıdaki yordamlar yazın.

    En iyi şekilde Winsock denetim, istemci ile sunucu arasında nasıl çalıştığını göstermek için <a0></a0>, yordamlar, ortaya çıktığı sırada listelenir.
    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. Kaydetmek ve formu UDPForm kapatın.
  7. UDPForm Form görünümünde açın ve Verileri Gönder</a0> düğmesini tıklatın.

    Metin kutusuna "Merhaba" görüntülediğini unutmayın Bağlantısız bir aktarım olduğundan, istemci-sunucu bağlantısı gerekmez.

Özellikler

Makale numarası: 209905 - Last Review: 28 Haziran 2004 Pazartesi - Gözden geçirme: 2.0
Bu makaledeki bilginin uygulandığı durum:
  • Microsoft Access 2000 Standard Edition
Anahtar Kelimeler: 
kbmt kbhowto kbinfo kbusage KB209905 KbMttr
Machine-translated Article
ÖNEMLİ: Bu makale, bir kişi tarafından çevrilmek yerine, Microsoft makine-çevirisi yazılımı ile çevrilmiştir. Microsoft size hem kişiler tarafından çevrilmiş, hem de makine-çevrisi ile çevrilmiş makaleler sunar. Böylelikle, bilgi bankamızdaki tüm makalelere, kendi dilinizde ulaşmış olursunuz. Bununla birlikte, makine tarafından çevrilmiş makaleler mükemmel değildir. Bir yabancının sizin dilinizde konuşurken yapabileceği hatalar gibi, makale; kelime dağarcığı, söz dizim kuralları veya dil bilgisi açısından yanlışlar içerebilir. Microsoft, içeriğin yanlış çevrimi veya onun müşteri tarafından kullanımından doğan; kusur, hata veya zarardan sorumlu değildir. Microsoft ayrıca makine çevirisi yazılımını sıkça güncellemektedir.
Makalenin İngilizcesi aşağıdaki gibidir:209905

Geri Bildirim Ver

 

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