Shoeisha Technology Media

CodeZine(コードジン)

記事種別から探す

仮想ネットワーク実装でTCP/IPを学ぼう(7)
― GDI+と独自プロトコルの定義

仮想ネットワーク実装でTCP/IPを学ぼう(7)

  • LINEで送る
  • このエントリーをはてなブックマークに追加
2010/06/03 14:00

 この連載では仮想的なLANを実装することにより、目に見えないTCP/IPプロトコル群を、手を動かして目で実際に確認しながら習得することを目的としています。今回も前回に引き続き、これまでの連載のまとめとして、仮想的なネットワークの実装方法について解説します。

目次

はじめに

 この連載では仮想的なLANを実装することにより、目に見えないTCP/IPプロトコル群を、手を動かして目で実際に確認しながら習得することを目的としています。ただし、TCP/IPの全てを解説するのは分量上不可能ですし、余計に読者を混乱させてしまいますので、筆者が重要と考えている部分だけ解説します。またサンプルコードや本記事に出てくるIPアドレスとMACアドレスについては架空のものであり、実際にそのIPアドレスを取得した組織などを意識したものではありません。あらかじめご了承ください。

 今回は仮想ネットワークを実装する為に必要な知識であるMDIアプリケーションの作り方と、GDI+プログラミングの基礎を解説します。また、独自プロトコルの決定を行うことにより、プロトコルそのものに対する理解を深めるお手伝いをします。

質問/指摘についての注意

 本記事の対象を超えるもの、記述箇所を特定しないもの、読者固有環境に起因するもの、読者の主義思想に関するもの、読者の誤解によるもの、社会人としてのマナーを欠いたものなどは質問/指摘を頂いてもお答えできません。あらかじめご了承ください。

 また、サンプルファイルとして、C#とVBのコードがダウンロード可能となっていますが、本記事内ではVBのコードは割愛し、C#のコードのみを説明します。VBを使用する方は、サンプルファイルの該当箇所を確認ください。

MDIアプリケーションの作り方

 仮想ネットワークは複数のフォームを管理する必要がありますので、MDIアプリケーションとしています。MDI(Multiple Document Interface)とは1つのフォーム内に、複数のフォームを表示するグラフィカルインターフェースのことです。一例を挙げますとMicrosoft Excelがこれに該当します。

 MDIアプリケーションを作るには、親となるフォーム(System.Windows.Forms.Formオブジェクト)を用意し、IsMdiContainerプロパティをtrueにします。

 次に、親となるフォームの内部に表示するフォームである子フォーム側のMdiParentプロパティに、親フォームを指定します。文章では分かりにくいので、MDIの設定を行うサンプルプロジェクトMdiSampleを用意しました。確認してください。

MDIの設定を行うサンプル(C#)
using System;
using System.Windows.Forms;

static class MdiSample
{
    static void Main()
    {
        //MDIの設定(親側)
        Form parent = new Form();
        parent.Text = "親フォーム";
        parent.IsMdiContainer = true;
        parent.WindowState = FormWindowState.Maximized;

        //MDIの設定(子側)
        Form child = new Form();
        child.Text = "子フォーム";
        child.MdiParent = parent;
        child.Show();

        //実行開始
        Application.EnableVisualStyles();
        Application.Run( parent );
    }
}
サンプル実行画面
サンプル実行画面

  • LINEで送る
  • このエントリーをはてなブックマークに追加

著者プロフィール

  • インドリ(インドリ)

    分析・設計・実装なんでもありのフリーエンジニア。 ブログ「無差別に技術をついばむ鳥(http://indori.blog32.fc2.com/)」の作者です。 アドバイザーをしたり、システム開発したり、情報処理技術を研究したりと色々しています。 座右の銘は温故知新で、新旧関係なく必要だと考えた...

バックナンバー

連載:仮想ネットワークの実装で学ぶTCP/IP

おすすめ記事

All contents copyright © 2006-2017 Shoeisha Co., Ltd. All rights reserved. ver.1.5