- 締切済み
一般的なソケット通信プログラム
ソケットを用いてシステムを考えておりまして、設計に悩んでおります。まだ知識がないもので、情報をいただければと思っております。 まず基本的にはサーバ1に対してクライアントはN台を考えております。サーバからクライアントに対して、メッセージを送信し、それに応じてクライアントで処理を行います。メッセージ数(クライアントの処理の数)は今のところ3種類を考えてます。 そこで、一般的にはどのようにするのが普通なのかということをまず知りたいのですが、これだけで何か情報をいただけないでしょうか。 いろいろ情報をいただければと思っております。よろしくお願いします。
- みんなの回答 (2)
- 専門家の回答
みんなの回答
- onosuke
- ベストアンサー率67% (310/456)
回答No.2
No.1 の回答が > コネクションを確立させるプロセスと実際に送信するプロセスを別にする場合 の手順、そのままですけど? もっとも、UNIX系列のOS前堤の話なので、そうじゃないならシステムを明らかにする必要がありますね。
- shige_70
- ベストアンサー率17% (168/946)
回答No.1
基本的な流れを説明します。 サーバ側は socket() ~ bind() ~ listen() してaccept() ループに入ります。 accept() から帰ったら fork() して子はリクエストを処理して exit() し、親はディスクリプタをclose()してからループを継続して再度 accept() に戻ります。 fork()の代わりにMTを用いてもよいでしょう。 クライアント側は socket() ~ connect() してから通信を行います。終わったら close() しましょう。 以上の説明が分からなければ、、、専門の書籍を参照された方がよいと思います。残念ながらここに書ききれるような情報ではありません。
補足
ありがとうございます。 書籍等も見ながらやっているんですが、一般的にシステムで利用するときには、コネクション型で通信を行うのが普通なのでしょうか。 もしコネクション型でする場合、コネクションを確立させるプロセスと実際に送信するプロセスを別にする場合、どのようにすればよろしいのでしょうか。 よろしくお願いいたします。