[kansaipm] Socketについて教えてください
yuhashimoto
yuhashimoto at hi-ho.ne.jp
Tue Dec 25 21:47:30 CST 2001
> 三嶋@難波です。
> きっと、Perlで書かれたCGIプログラムがクライアントとして、
> スタンドアロンのサーバへconnect しに行くという図式なのでしょう。
おっしゃるとおりです。apacheにアクセスしたブラウザが起動するnobodyが、
動かすcgiです。
> > # ところで select(2) って必要でしたっけ? (^^;
>
> きっと、fork せずに、1個のプロセスで複数のソケットを管理して、
> とっかえひっかえ使おうとしているのでしょう。
> それなら必要ですよね、select(2)。
selectかforkか二者択一ってな感じで本にかいてありましたので
三嶋さんwrote
> えっと、子プロセスが終わると、SIGCHLDのシグナルは自動的に発生するん
> でしたっけ。親のほうで、シグナルハンドラを用意すれば良いんですよね。
りゅうちさんwrote
> fork(2) を使って あるクライアントからの接続を子に任せて、親は次から次へ
>と来る要求を処理するために accept(2)すればいいです。
> 子が終わるときは 親にシグナルを送って、親がシグナルを受けたら wait して
>やればいいはずです。
waitで待つと、acceptで待てないというパラドックスにおちいっていたんですが
これで、解決しました。
三嶋さん、りゅうちさん、ありがとうございます。
forkを使ってやってみます。
> ところで橋本@神戸さん、具体的に何をするプログラムを
> 作ろうとされているのでしょうか。
基幹業務に使う、あるデータベースへのアクセスが、ODBCでは、何ユーザでもいい
のですが、何故か、サーバで動くC言語で提供されたアクセス関数は、1ユーザしか
使えないので、1つの
サーバプログラム(=1ユーザ)で、複数のプログラムからのデータベースへのアク
セスを一手に引きうけちゃおうというプログラムです。
とりあえず、メッセージキュー版は作りましたが、信頼性の問題から、ソケット版
だろうということで.
perlで作ったCOBOLの各命令に対応する関数、動いています。
販売管理システム、ジョブ数20、プログラム数50本ぐらいで、JCL機能もサポート
しました。近く、公開できると思います。
このままでは、使えないので、とりあえず、考え方の参考にしかならないと思います
けれど
More information about the Kansai-pm
mailing list