UDPプロトコルでの使い方(PC側)


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

WindowsのVisual Basic 6.0をベースにして、UDP通信での簡単なアプリケーションを
作ります。

ここで作るPC側のUDPアプリケーションは下表のような仕様になっているものとします。
デバイス側の仕様は前のページを参照して下さい。

PC側の仕様
No 機 能 使用ポート 機 能 内 容
データ送信 Local   10003
Remote 10002
送信ボタンを押したとき、テキストボックスに入力された
データを送信する。
2 データ受信 Local   10003
Remote 10001
受信ボタンを押したとき、一定時間間隔でCounterの値
を送信し、折り返しのデバイスからの送信データを受信
してテキストボックスに表示する。そしてCounter更新

デバイス側ではCounterの値を液晶表示器に表示し、
同時に、PC側からの送信データの応答として固定文字列
データを送信するものとし、自ら送信することは無いもの
とします。
3 終 了   終了ボタンを押したらWinsock、Timerコントロールを
クローズし、アプリケーションを終了、フォームを閉じる。
その他 RemoteIPアドレス
Timer Interval
192.168.1.3
初期設定 30msec


【UDP通信でのWinsockの使い方】

Winsockコントロールを使って、UDP通信をするアプリを作るときの基本のパターンは
下記のようにします。送信と受信で少し手順が異なります。


《データを送信する場合》

(1) PC側のUDPで使う送信ポートを LocalPort プロパティに設定します。
  パソコン側の送り出しポート番号を指定します。

(2) 受信側となるデバイス側のIPアドレスをRemoteHost プロパティに設定します。
  またRemotePort プロパティに、デバイス側の受信ポート番号を設定します。

(3) SendData メソッドを呼び出してデータを送信します。
  

《データを受信する場合》

(1) PC側のUDPで使う送信ポートを LocalPort プロパティに設定します。
  パソコン側の送信ポート番号を指定します。

(2) 受信側となるデバイス側のIPアドレスをRemoteHost プロパティに設定します。
  またRemotePort プロパティに、デバイス側の受信ポート番号を設定します。

(3) PC側の受信ポート番号をBindメソッドで指定します。
  このポートに受信データを受けると、Data_Arriveイベントが発生します。

(4) Data_Arriveイベント内でGetDataメソッドを呼び出して受信したデータを取り出
  します


【アプリ例のフォーム】

UDP通信の場合にはTCP通信と異なり、セッションの確立という手順が必要なく
いつでもいきなり送信や受信が可能になっていますので、簡単なプログラムで
送受信が実現できます。
ただし、送受信にエラーがあったりして抜けたような場合には、UDPプロトコルでは
再送手順は無いので、アプリケーションで再送手順を入れる必要があります。
ここでのアプリケーション例では、UDPのテスト用なのでこの再送手順は入れてあり
ません。

試作したUDPアプリケーションのフォームは下図のようになっています。
まずWinsockコントロールとTimerコントロールを貼り付けています。
あとはテキストボックスが1個とボタンが3個だけです。







【アプリ例プログラム解説】

上記フォームに対するコード部は下記のようになっています。

(1) フォームロード時
 まず送信回数と受信回数用のカウンタを0クリアし、Timer1の時間間隔を
 1msecとします。
(2) 送信ボタン押下時
 一旦Winsockをクローズしてから、再度Winsock送信手順に従って設定した
 あと、Text1のテキストボックスの内容をそのまま送信出力しています。
 デバイス側ではこれを液晶表示器に表示します。
(3) 受信ボタンの押下時
 Winsockの送信と受信を行いますのでBindメソッドを追加して受信ポートを
 指定してから、送受信カウンタの値を文字列にして送信します。
 そしてタイマーのスタートをしています。
 デバイス側では、このカウンタの文字列を表示してから、折り返し固定の
 文字列を返送します。
(4) タイマーのイベント時
 1msec周期で入るイベント毎に、送信カウンタを+1しては、受信ボタンを
 押したときと同じようにカウンタの値を更新し文字列にして送信します。
(5) UDP受信イベント時
 デバイス側から送られて来た文字列データを、そのままText1のテキスト
 ボックスに表示します。そして受信カウンタを+1します。
(6) 終了ボタン押下時
 タイマーを停止してからフォームを消去します。








【プログラムファイル】

上記のUDP通信テスト用のVB6ファイルは下記でダウンロードできます。

 ☆UDPテストプログラム1式




        目次に戻る