.NETエンジニア・プログラマ向けの技術情報・業界ニュースをお届けします。

  1. FEnet.NETナビ
  2. .NETコラム
  3. プログラミング言語
  4. VB.NET
  5. VB.netでソケット通信する方法は?ソケット通信の概要やサンプルプログラムをご紹介

VB.netでソケット通信する方法は?ソケット通信の概要やサンプルプログラムをご紹介

  • VB.NET
  • プログラミング言語
公開日時:   更新日時:
VB.netでソケット通信する方法は?ソケット通信の概要やサンプルプログラムをご紹介
この記事でわかること
    基本情報技術者試験の試験対策はこちら>>

    システム
    エンジニア
    今では当たり前になってきたソケット通信について教えてください。

    プロジェクト
    マネージャー
    世界中の方がデータ通信を利用していますね。では基本からおさらいしていきましょう。

    ソケット通信とは?


    ソケットはアプリケーション同士でデータ通信する際の出入り口のことを指します。通信する各アプリケーションの出入り口にはIPアドレスとポート番号が割り振られていて、このIPアドレスとポート番号を利用した通信をソケット通信と言います。

    一つのネットワーク内には、同じIPアドレスとポート番号の組み合わせが無いように割り振るルールになっているので、通信するアプリケーションがネットワーク内に複数あった場合でも、相手を間違えずに通信することができます。

    クライアントサーバシステムとは?

    例えば、パソコンでブラウザを立ち上げてホームページを閲覧する場合、ソケット通信が行われています。この場合、パソコン側を「クライアント」、ホームページが保存されているインターネット上のコンピュータ側を「サーバ」と呼んでいます。

    「クライアント」はサービスを受け取る側、「サーバ」はサービスを提供する側と言い換えることができます。このようにコンピュータをクライアント側、サーバ側に分けて役割分担する仕組みを、クライアントサーバシステムと言います。

    ソケット通信で使うプロトコルとは?

    ソケット通信では、TCP/IPまたは、UDP/IPのどちらかの通信プロトコルを使用します。通信プロトコルとは、データ通信する際の決められたルールや手順のことです。

    日本国内だけでなく、海外のホームページを閲覧できたり、Windows PCとMac PCでメールをやり取りできたりするのは、共通の通信プロトコルが取り決められているためです。

    TCP/IPとは?

    TCPはTransmission Control Protocolの略です。ソケット通信の1つであるTCP/IPはインターネットで標準的に利用されているプロトコルで、ホームページの閲覧やファイル転送時などに用いられています。信頼性の高い通信を行うことができます。

    コネクション型通信とも呼ばれ、通信開始前に相手との間で仮想的な通信路を確保したり、相手からの受信確認をチェックして届いていない場合は再送するなど、通信の信頼性を高める仕組みがあります。その代わり、通信に時間がかかるという難点もあります。

    UDP/IPとは?

    UDPはUser Datagram Protocolの略です。ソケット通信の1つであるUDP/IPもインターネットで標準的に利用されているプロトコルで、DNS(ドメイン名とIPアドレスの紐づけ)やNTP(各機器の時刻同期)などに用いられています。TCP/IPと比べると信頼性の面で劣りますが、高速性やリアルタイム性が優れています。

    コネクションレス型通信とも呼ばれ、通信開始前に相手との間で事前のやり取りや再送処理などをしないため、高速性やリアルタイム性がある反面、信頼性が低いという難点があります。

    TCP/IPとUDP/IPの比較

    TCP/IPとUDP/IPはそれぞれ特徴が異なるため、用途に応じて使い分けされています。

    TCP/IPは信頼性は高く通信データが届かなかった場合でも再送するため、時間が掛かっても確実に通信相手にデータを届けたい場合に使用します。一方、UCP/IPは高速性やリアルタイム性が高いので、早くデータを届けたい場合に使用します。

    下表ではTCP/IPとUDP/IPの特徴を比較しています。

    プロトコル TCP/IP UDP/IP
    通信方式 コネクション型通信 コネクションレス型通信
    信頼性 高い 低い
    転送速度 遅い 速い
    上位プロトコル HTTP、Telnet、FTPなど DNS、NTP、DHCPなど
    用途 ホームページの閲覧、メール送受信、ファイル転送など 少量のデータ転送、ブロードキャスト、マルチキャスト、Videoストリーミングなど
    特徴 通信相手とのコネクションを確立,信頼性が高い,データ欠落時の再送あり コネクションなし,高速,レスポンス速い,データ欠落しても再送なし

    VB.netとは?

    VB.netを使用すれば簡単にソケット通信プログラムを作成することができます。VB.netとは、Microsoftが開発したプログラミング言語で、画面を作りながらプログラミングをすることができるので初めてでも学びやすい言語です。

    VB.netはMicrosoftのホームページから無料でダウンロードすることができます。解説しているホームページもたくさんあるので、分からないことがあっても検索すれば容易に解決策を知ることができます。以降にVB.netでソケット通信するサンプルプログラムを紹介します。

    VB.netプログラムの設定方法

    ここでは、VB.netを使用してソケット通信のプログラミングをする方法を説明します。

    TCP/IPでは、クライアント側とサーバ側で処理が異なるため、別々のプログラムを作成する必要があります。クライアント側はTcpClientクラスを使用し、サーバ側はTcpListenerクラスを使用します。

    サーバ側は基本的に受信待ち状態で待機しておき、クライアント側からの要求が来たら処理を行うような動作です。

    TCP/IPサーバ側のサンプルプログラム

    VB.netでTCP/IPソケット通信するサーバ側のサンプルプログラムです。サンプルプログラムは大きく分けると次のような処理を行っています。

    1. 起動時の接続設定(FormTcpSv_Load処理)
    2. 終了時の切断設定(FormTcpSv_FormClosed処理)
    3. クライアント接続待ち(ServerThread処理)
    4. クライアントとの送受信(ClientTcpIpクラス)

    TCP/IPクライアント側のサンプルプログラム

    VB.netでTCP/IPソケット通信するクライアント側のサンプルプログラムです。このサンプルではタイマー処理で受信データのチェックを行っています。サンプルプログラムは大きく分けると次のような処理を行っています。

    1. 起動時の接続処理(FormTcpCl_Load処理)
    2. 終了時の切断処理(FormTcpCl_FormClosed処理)
    3. ソケット送信処理(Button1_Click処理)
    4. ソケット受信処理(Timer1_Tick処理)

    UDP/IPのサンプルプログラム

    TCP/IP通信では、クライアント側とサーバ側でそれぞれ異なるプログラムを作成する必要がありました。UDP/IP通信の場合は、クライアント側とサーバ側で処理の区別は無いので共通のプログラム処理になります。

    VB.netでUDP/IPソケット通信するサンプルプログラムです。このサンプルではタイマー処理で受信データのチェックを行っています。サンプルプログラムは大まかに次のような処理を行っています。
    1. 起動時の接続設定(FormUdp_Load処理)
    2. 終了時の切断設定(FormUdp_FormClosed処理)
    3. ソケット送信処理(Button1_Click処理)
    4. ソケット受信処理(Timer1_Tick)

    システム
    エンジニア
    プログラムとTCP/IPを結ぶ出入り口がソケット通信ということですね。

    プロジェクト
    マネージャー
    異なったOS同士での通信を可能にする共通ルールだと考えれば、理解が早くなりましね。

    VB.netでソケット通信を理解する

    今回はソケット通信の概要とVB.netを使用したソケット通信のサンプルプログラムをご紹介しました。

    VB.netでは、TCP/IPならTcpClientクラスやTcpListenerクラス、UDP/IPならUdpClientクラスが用意されているので、これらを使用すればVB.netで簡単にソケット通信のプログラムを作成することができます。

    実際にプログラミングすると、ソケット通信への理解もより一層深まるので、ぜひチャレンジしてみましょう。

    FEnet.NETナビ・.NETコラムは株式会社オープンアップシステムが運営しています。
    株式会社オープンアップシステムロゴ

    株式会社オープンアップシステムはこんな会社です

    秋葉原オフィスには株式会社オープンアップシステムをはじめグループのIT企業が集結!
    数多くのエンジニアが集まります。

    秋葉原オフィスイメージ
    • スマホアプリから業務系システムまで

      スマホアプリから業務系システムまで

      スマホアプリから業務系システムまで開発案件多数。システムエンジニア・プログラマーとしての多彩なキャリアパスがあります。

    • 充実した研修制度

      充実した研修制度

      毎年、IT技術のトレンドや社員の要望に合わせて、カリキュラムを刷新し展開しています。社内講師の丁寧なサポートを受けながら、自分のペースで学ぶことができます。

    • 資格取得を応援

      資格取得を応援

      スキルアップしたい社員を応援するために資格取得一時金制度を設けています。受験料(実費)と合わせて資格レベルに合わせた最大10万円の一時金も支給しています。

    • 東証プライム上場企業グループ

      東証プライム上場企業グループ

      オープンアップシステムは東証プライム上場「株式会社夢真ビーネックスグループ」のグループ企業です。

      安定した経営基盤とグループ間のスムーズな連携でコロナ禍でも安定した雇用を実現させています。

    株式会社オープンアップシステムに興味を持った方へ

    株式会社オープンアップシステムでは、開発系エンジニア・プログラマを募集しています。

    年収をアップしたい!スキルアップしたい!大手の上流案件にチャレンジしたい!
    まずは話だけでも聞いてみたい場合もOK。お気軽にご登録ください。

    株式会社オープンアップシステムへのご応募はこちら↓
    株式会社オープンアップシステムへのご応募はこちら↓

    新着案件New Job