スレッドで Message を取得する

アニメーションしながらスレッドで Message を取得します。

前田稔(Maeda Minoru)の超初心者のプログラム入門

TCP Server の説明

  1. プログラムファイルをダウンロードして、プロジェクトに取り込んで下さい。
    ファイル名 説明
    Server.cs, Client.cs Server & Client
  2. Message の送信は実行するタイミングが明白なのですが、受信は何時送られてくるか解りません。
    従って、タイマ割り込みで定期的にチェックするか、スレッドとして起動して常時チェックしなければなりません。
    今回はアニメーションしながらスレッドとして受信 Message を取得することにします。
    スレッドの説明は スレッドで時刻を取得する を参照して下さい。
    「スレッドで時刻を取得する」では、タイマ割り込みで時刻を表示していますが、時刻が Message に代わるだけです。
  3. アニメーションのプログラムは「スレッドで時刻を取得する」を参照して下さい。
  4. スレッドで起動するメッセージを受信する Server Object Class です。
    Constructor でサーバーを開始して接続待機に入ります。
    実際にスレッドで起動するのは GetMessage() メソッドです。
    Pending() で接続要求待ちを確認して、AcceptTcpClient() で Client に接続します。
    AcceptTcpClient() を直接実行すると、接続待ち状態で先に進まなくなることがあるので注意して下さい。
    取得した Message は anime.Msg に格納します。
  5. Server Object Class を生成して、スレッドで起動する Main() メソッドです。
    new Thread(new ThreadStart(server.GetMessage)) でスレッドを設定して threads.Start() で起動します。
    スレッドの終了は listener に null を設定して、終了を待ち合わせます。

TCP Client の説明

  1. Client 側のプログラムは Form に TextBox と Button を貼り付けます。
    ボタンを選択して、稲妻型のアイコンから Click に Button1_Click のイベントを設定します。
    TextBox に Message をタイプして Button をクリックすると送信されます。
  2. button1_Click に Server に接続して Message を送信するコードを記述します。
  3. 先に Server を起動してから Client を起動して下さい。
    Server と Client を一台のマシンで起動してテストして下さい。
    Client を二個以上同時に起動することも出来ます。

超初心者のプログラム入門(C# Frame Work)