複数クライアントのおける名前付きパイプ – プログラミング – Home

複数クライアントのおける名前付きパイプ
 
通知
すべてクリア

複数クライアントのおける名前付きパイプ


カズヤ
 カズヤ
(@カズヤ)
ゲスト
結合: 15年前
投稿: 6
Topic starter  

VC2008上で開発を行っています。
プロセス間通信で名前付きパイプの使用方法ですが、複数クライアント対1サーバで通信
を行いたいと思っています。
データはクライアントからサーバに対してのみ送信されます。
サーバ側の読み込み(ReadFile())を1ハンドルで複数クライアントからのデータを受信し
たいのですが、可能でしょうか?
1対1の通信は問題なく実行できました。
可能でしたら、簡単な方法を教えていただければ幸いです。

Client
|----|
| |-----|
|----| | Server
| パイプ |-------|
Client |-=========--| |
|----| | |-------|
| |-----|
|----|


引用解決済
トピックタグ
仲澤@失業者
(@uncle_kei)
Prominent Member
結合: 5年前
投稿: 828
 

れすつきませんねぇ。

>サーバ側の読み込み(ReadFile())を1ハンドルで複数クライアントからのデータを
>受信したいのですが、可能でしょうか?

「同名の複数のパイプのインスタンス(ハンドル)が作れるのか」
という質問ならば答えは「可能」です。一般にはこのように使います。

また、「一つのハンドルを使用して複数のクライアントのコール
(又はCreateFile)に対応できるのか」については、一般には
「できない」となります。が、同時にアクセスしないのなら、
接続解除(DisconnectNamedPipe)後のハンドルの使いまわしは可能な
ようですね(自分はやったことがないです)。


返信引用
カズヤ
 カズヤ
(@カズヤ)
ゲスト
結合: 15年前
投稿: 6
Topic starter  

>>仲澤@失業者さん

返信ありがとうございます。

サーバ側はクライアントを識別する必要がなく、処理結果をカウントするだけで
よかったので、1ハンドルでメッセージを受信できれば楽かと思っていましたが、
無理そうですね。素直にクライアント数だけコネクトする方法でいきたいと思います。

サーバ側がコンソールアプリなので、WM_COPYDATAも使用できないんですよね(;;)


返信引用
subaru
 subaru
(@subaru)
ゲスト
結合: 19年前
投稿: 381
 

>サーバ側がコンソールアプリなので、WM_COPYDATAも使用できないんですよね(;;)

コンソールアプリでもウインドウを作ればWM_COPYDATAは使えると思いますが・・・


返信引用

返信する

投稿者名

投稿者メールアドレス

タイトル *

プレビュー 0リビジョン 保存しました
共有:
タイトルとURLをコピーしました