Winsockコントロールの使い方


【TCP/UDP通信アプリケーションの作り方】

WindowsのVisual Basic 6.0をベースにして、TCPやUDP通信でのアプリケーションを
作る時には、次のようにします。

Visual Basic 6.0で、UDP通信あるいはTCP通信でデータ通信を行うアプリケーションを
簡単に作るときには、「Winsockコントロール」を使います。

このWinsockコントロールは、VB6のプロフェッショナルエディション以上で使うことが
できるようになっています。


【Winsockコントロールとは?】

Winsock コントロールは、TCP やUDPプロトコルを使ったネットワーク通信のアプリを
簡単に作る機能を提供するコンポーネントです。

これらのアプリケーションプログラムを作るときに、TCP の詳細を理解したり、低水準の
Winsock API を呼び出したりしなくても、このWinsockコントロールの各種プロパティを
設定し、メソッドを呼び出すだけで、簡単にリモート マシンに接続し、送受信両方向の
データ通信を行うことができるようにしてくれます。

Winsockコントロールの主なプロパティとメソッドには、下表のようなものが用意されています。

No 名称 機能内容と記述方法 備考
1 Protocol
プロパティ
Winsockとして使うプロトコルの指定
UDPかTCPかを指定する。
 <書式>
  object.Protocol [=protocol]
 <protocolの値>
   sckTCPProtocol
   sckUDPProtocol 
objectはWinsockの
オブジェクト名
2 LocalPort
プロパティ
送信するポート番号の指定
 <書式>
  object.LocalPort = long
 <longの値>
  汎用ポートである10000から17000
  の間の任意の定数
 
3 RemoteHost
プロパティ
通信する相手のアドレス指定
 <書式>
  object.RemoteHost = string
 <stringの値>
  コンピュータ名またはIPアドレス



IPアドレスの例
 192.168.1.3
4 RemotePort
プロパティ
送信する相手のポート番号の指定
 <書式>
  object.RemotePort = port
 <portの値>
  汎用ポートである10000から17000
  の間の任意の定数
 
5 DataArraival
イベント
受信のイベント発生
 <書式>
  object_DataArrival (bytesTotal As Long)
bytesTotal As Long
には取得できる最大
データサイズが渡される
6 SendData
メソッド
PC側から送信する
 <書式>
  object.SendData data
 <dataの値>
   送信するデータ、文字列かバイト配列



バイナリデータ送信の
時はバイナリ配列で
指定する
7 Bind
メソッド
UDPの時、受信するLocalPortを指定します。
 <書式>
  object.Bind LocalPort, LocalIP
 <LocalPortの値>
  受信するPC側のポート番号
 <LocalIPの値>
  受信するPC側のIPアドレス
  RemoteHostで指定していれば省略可能
 
8 GetData
メソッド
受信したデータを取り出す
 <書式>
  object.GetData data[, type[, maxLen] ]
 <data>
  取得データの格納バッファの指定
 <type>
  取得するデータの型指定、省略可能
 <maxLen>
  バイト配列または文字列の場合に
  取得するデータ個数を指定、省略可能
 
9 Close
メソッド
ソケットを閉じます
 <書式>
  object.Close
 



【Winsockコントロールの準備】

まずVB6でWinsockコントロールが使えるようにします。 通常の起動状態では
Winsockコンポーネントはツールボックスには無いので、下記のようにして追加します。

まず、VB6を起動し、新規作成の標準EXE作成でフォーム作成状態にしてから、
プロジェクト → コンポーネント とすれば下記コンポーネント選択ダイアログが
開きますので、ここで「Microsoft Winsock Control」を選択して追加します。





あとはツールボックスのWinsockコントロールをフォームに貼り付ければWinsockが
使える状態になります。


【Winsockコンポーネントをフォームへ】

上記で追加するとツールボックスには下図のようにWinsockのアイコンが追加され
ます。 このアイコンをドラッグしてフォームに貼り付けると、やはり下図のような
アイコンとなって表示されます。
このWinsockコントロールのアイコンは実行中は見えなくなりますので、フォーム上の
どこに貼り付けても構いません。










        目次に戻る