ACC2000: 使用 Winsock ActiveX 控制項的兩個範例

重要:本文是以 Microsoft 機器翻譯軟體翻譯而成,而非使用人工翻譯而成。Microsoft 同時提供使用者人工翻譯及機器翻譯兩個版本的文章,讓使用者可以依其使用語言使用知識庫中的所有文章。但是,機器翻譯的文章可能不盡完美。這些文章中也可能出現拼字、語意或文法上的錯誤,就像外國人在使用本國語言時可能發生的錯誤。Microsoft 不為內容的翻譯錯誤或客戶對該內容的使用所產生的任何錯誤或損害負責。Microsoft也同時將不斷地就機器翻譯軟體進行更新。

按一下這裡查看此文章的英文版本:209905
本文已封存。本文係以「現狀」提供且不會再更新。
進階: 須具備專家編碼、 互通性,與多使用者技能。

本文只適用於 Microsoft Access 資料庫 (.mdb)。

結論
本文提供如何使用 Microsoft Office 2000 開發 o 人 h 員 û 工 u 具 ã 版] 以安裝 Winsock ActiveX 控制項的兩個範例。
其他相關資訊
Winsock 控制項可讓您連線到遠端的電腦和交換資料用戶端和伺服器電腦之間。Winsock 控制項支援兩種通訊協定: 傳輸控制通訊協定 (TCP) 與使用者資料包通訊協定 (UDP)。

TCP 是連線為基礎的通訊協定。常見的類比用來描述 TCP 是電話。在這個比喻呼叫端必須建立在兩端電話線路連接之前可以交換資訊。使用 TCP 的電腦必須從某個連接已接收的電腦接收確認建立前兩部電腦可以傳輸資料。

UDP 是不需連線的通訊協定。常見的類比用來描述 UDP 是一個電台。在這個比喻廣播電台廣播其訊號不確定知道如果有人正在接聽的情況下。使用 UDP 電腦傳送資料,且不需要與傳輸的接收端電腦的連線。

範例 1-使用 Winsock ActiveX 控制項具有 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. 按一下 [檢視] 功能表 程式碼
  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-使用 Winsock ActiveX 控制項具有 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. 按一下 [檢視] 功能表 程式碼
  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]。因為這是無連線傳輸時,您沒有建立用戶端與伺服器連線。
號碼

警告:本文為自動翻譯

內容

文章識別碼:209905 - 最後檢閱時間:01/11/2015 02:05:02 - 修訂: 2.0

Microsoft Access 2000 Standard Edition

  • kbnosurvey kbarchive kbmt kbhowto kbinfo kbusage KB209905 KbMtzh
意見反應