TCP Server Program

Date: 05-Feb-1998
(c) Copyright 1997, 1998 by H.Fujii

サーバプログラムは、一般に、複数のクライアントからの要求を 処理することが求められます。UNIXなどでは、fork()を使って この処理を行うのが普通ですが、WIN32には fork() または、 直接それに相当するものはありません。そこで、代わりの方法が 必要になりますが、ここでは thread を使う場合を考えます。

プログラムの骨子
プログラムの骨格部分は、文献1に示して ある例題を基礎にします。まずやるべき骨子を整理しましょう。 やるべきことは、次の通りです。

上の骨子で、問題になるのは thread の起動生成と、終了です。POSIX で あれば、pthread_create() に相当するものが WIN32 では何か?また POSIX であれば、thread 関数から return すると、その thread は消滅 しますが、WIN32 でも同じことが言えるか?この 2 点をまず押さえる必要が あります。

WIN32 での Thread
WIN32 のマニュアル(WIN32 SDK Online Help)を見ると、Thread の生成に と終了のためのいくつかの関数があります。

このうち、最初の二つは、thread 関数が C のランタイムライブラリーを 使用する場合となっています。また、_beginthread() と _beginthreadex() との大きな違いは、後者はセキュリティの指定、開始状態の指定(生成後、 直ちに実行するか、中断状態に置いておくかの指定)ができることのよう です。

この記事未完

参考文献