ACC2000: 2 つの例の Winsock の ActiveX コントロールを使用します。

文書翻訳 文書翻訳
文書番号: 209905 - 対象製品
詳細は、次の項目を参照してください。 エキスパート コーディング、相互運用性、およびマルチユーザーのスキルが必要です。

この資料は Microsoft Access データベース (.mdb) についてのみ記述したものです。

すべて展開する | すべて折りたたむ

目次

概要

ここでは、Microsoft Office 2000 開発版ツールと共にインストールされた Winsock ActiveX コントロールを使用する方法の 2 つの例について説明します。

詳細

Winsock コントロールでは、クライアントとサーバーの両方のコンピューター間のリモート コンピューターと交換データに接続できます。 Winsock コントロールが 2 つのプロトコルをサポート: 伝送制御プロトコル (TCP) およびユーザー データグラム プロトコル (UDP)。

TCP は、接続ベースのプロトコルです。 TCP を記述するために使用する一般的なたとえでは、電話のです。 類似性は、[呼び出し元を情報を交換できる前に、電話回線の両端で接続を確立する必要があります。 TCP を使用してコンピューターに接続されている受信側コンピューターから確認を受信する必要があります、2 台のコンピューターがデータを転送する前に確立します。

UDP はコネクションレス型プロトコルです。 UDP を記述するために使用する一般的なたとえでは、無線機のです。 類似性は、[ラジオ局をだれもがリッスンしている場合の確認を知らなくても、信号をブロードキャストします。 UDP を使用してコンピューター データ送信必要し、しない転送の受信側のコンピューターと接続します。

例 1 - TCP で Winsock ActiveX コントロールの使用

次の使用例、同じコンピューターを使用して両方の送信をデータを受信します。 次の 3 つの Winsock コントロールを持つフォームを作成します。 サーバーに接続要求を送信する、クライアントのコンピューター環境をエミュレートのいずれかのコントロールとします。 サーバー コンピューター上で、環境をエミュレートする、他の 2 つのコントロール: 1 つのコントロールが、接続要求を待機し、際に、要求を承諾、します。
  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 = 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. 経由の受信ができるように </a0> をクリック、接続要求を待機で、サーバーを起動するします。

      メッセージ ボックスが表示されて、サーバーが接続を待機するときに確認します。
    2. [接続の設定 ] ボタンをクリックします。

      接続が成功したことを確認する、クライアントからメッセージ ボックスと、要求が受け入れられましたことを確認するサーバーからメッセージ ボックス確認します。
    3. データの送信 ] をクリックし、テキスト ボックス、フォームの一覧でクライアント メッセージ「こんにちは」を表示することを確認します。
    4. 返信 ボタンをクリックして、サーバー メッセージ「メッセージのありがとう!」がテキスト ボックスで表示されます。
    5. 閉じる接続 ] をクリックして、クライアントとの接続が閉じられたことを示すサーバーの両方からのメッセージ ボックス。

例 2 - UDP で Winsock ActiveX コントロールの使用

次の使用例、同じコンピューターを使用して両方の送信をデータを受信します。 2 つの Winsock コントロールを持つフォームを作成: クライアント コンピューターをエミュレート コントロールの 1 つと、もう一方のコントロールは、サーバーをエミュレートします。
  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 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 をフォーム ビューで開き、 データの送信 ] をクリックします。

    テキスト ボックスが表示されます「こんにちは」します。 これは、コネクションレス型の転送であるためにがないクライアント/サーバー接続を確立します。

プロパティ

文書番号: 209905 - 最終更新日: 2004年6月28日 - リビジョン: 2.0
この資料は以下の製品について記述したものです。
  • Microsoft Access 2000 Standard Edition
キーワード:?
kbhowto kbinfo kbusage kbmt KB209905 KbMtja
機械翻訳の免責
重要: このサポート技術情報 (以下「KB」) は、翻訳者による翻訳の代わりに、マイクロソフト機械翻訳システムによって翻訳されたものです。マイクロソフトは、お客様に、マイクロソフトが提供している全ての KB を日本語でご利用いただけるように、翻訳者による翻訳 KB に加え機械翻訳 KB も提供しています。しかしながら、機械翻訳の品質は翻訳者による翻訳ほど十分ではありません。誤訳や、文法、言葉使い、その他、たとえば日本語を母国語としない方が日本語を話すときに間違えるようなミスを含んでいる可能性があります。マイクロソフトは、機械翻訳の品質、及び KB の内容の誤訳やお客様が KB を利用されたことによって生じた直接または間接的な問題や損害については、いかなる責任も負わないものとします。マイクロソフトは、機械翻訳システムの改善を継続的に行っています。
英語版 KB:209905
Microsoft Knowledge Base の免責: Microsoft Knowledge Baseに含まれている情報は、いかなる保証もない現状ベースで提供されるものです。Microsoft Corporation及びその関連会社は、市場性および特定の目的への適合性を含めて、明示的にも黙示的にも、一切の保証をいたしません。さらに、Microsoft Corporation及びその関連会社は、本文書に含まれている情報の使用及び使用結果につき、正確性、真実性等、いかなる表明・保証も行ないません。Microsoft Corporation、その関連会社及びこれらの権限ある代理人による口頭または書面による一切の情報提供またはアドバイスは、保証を意味するものではなく、かつ上記免責条項の範囲を狭めるものではありません。Microsoft Corporation、その関連会社 及びこれらの者の供給者は、直接的、間接的、偶発的、結果的損害、逸失利益、懲罰的損害、または特別損害を含む全ての損害に対して、状況のいかんを問わず一切責任を負いません。(Microsoft Corporation、その関連会社 またはこれらの者の供給者がかかる損害の発生可能性を了知している場合を含みます。) 結果的損害または偶発的損害に対する責任の免除または制限を認めていない地域においては、上記制限が適用されない場合があります。なお、本文書においては、文書の体裁上の都合により製品名の表記において商標登録表示、その他の商標表示を省略している場合がありますので、予めご了解ください。

フィードバック

 

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