• ベストアンサー

ネームドパイプ(名前付きパイプ)について

仕事で「ネームドパイプ」という通信方法でPC間のデータのやり取りを行うシステムについて開発することになりました。簡単なプログラムサンプル等が紹介されているHPがあれば教えていただけないですか?OSはXPと2000サーバです。言語は恐らくC(vc++)となります。

質問者が選んだベストアンサー

  • ベストアンサー
回答No.2

簡単なサンプルということで --------- 0. パイプの名前を決める #define PIPE_NAME "\\\\.\\pipe\\foobar" 1.パイプを作る m_pipe = NULL; m_pipe = CreateNamedPipe (PIPE_NAME, PIPE_ACCESS_DUPLEX | FILE_FLAG_WRITE_THROUGH, PIPE_TYPE_MESSAGE | PIPE_READMODE_MESSAGE | PIPE_WAIT, PIPE_UNLIMITED_INSTANCES, BLOCKSIZE, BLOCKSIZE, WAITTIME, NULL); 2-a.サーバ側 if (!ConnectNamedPipe (m_pipe, NULL)) { return false; } 2-a-1.データ読み込み DWORD count = 0; if (ReadFile(m_pipe, buffer, BLOCKSIZE, &count, 0) == NULL) return true; 2-a-2.クローズ if (m_pipe != NULL && m_pipe != INVALID_HANDLE_VALUE) { DisconnectNamedPipe (m_pipe); } 2-b.クライアント側 データを送信する DWORD size = 0; char* buffer; // データを送るバッファアドレス if (!CallNamedPipe (PIPE_NAME, buffer, BLOCKSIZE, 0, 0, &size, NMPWAIT_USE_DEFAULT_WAIT)) return false; --------------------

全文を見る
すると、全ての回答が全文表示されます。

その他の回答 (1)

  • AnalHare
  • ベストアンサー率8% (9/110)
回答No.1

猫でもわかるとかマイクロソフトMSDNサイトですが 書籍のやつが完璧で詳しいです。

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • Javaで名前付きパイプ通信

    プラットフォームWindows 2003サーバー。 C++のexeプログラムとJavaプログラム。 名前付きパイプでのプロセス間通信をしたいと考えています。 C++側は問題ないと思いますが、Java側で対応できますか? java.ioパッケージ内にpipedWriter/pipedReaderクラスがあるようですが、名前指定等がないようです。 どうぞご教授ください。

  • パイプを用いたプロセス間通信について

    VC++2005にて下記サイトを参考にパイプを用いたプロセス間通信を行うプログラムを作成しています。 猫でもわかるプログラミング (1)第242章 匿名パイプ(サーバー側) http://www.kumei.ne.jp/c_lang/sdk3/sdk_242.htm (2)第243章 匿名パイプ(クライアント側) http://www.kumei.ne.jp/c_lang/sdk3/sdk_243.htm サーバー側からWriteFileでデータを送信する際に、 char型配列に入ったバッファデータ「szBuf」を送信し、 クライアント側のReadFileで同じく「szBuf」で受信していますが、 構造体Data ================== typedef TypeData{ int a; int b; char c[10]; }Data; ================== のオブジェクトdataを送信するには、WriteFile及びReadFileの箇所は どのように実装すれば良いのでしょうか? MSDNにはWriteFileの引数の型はLPCVOIDとあるため、 可能だと思うのですが。。。 もし解決策をご存知の方おられましたら、ご教示お願い致します。

  • 名前付きパイプの通信ポートについて

    社内に名前付きパイプを使って 通信するC/Sシステムが有ります。 今後、クライアントとサーバーの間にファイアウォールを導入する事になり、利用しているポートを調べていますが特定できていません。 利用しているポートを知る方法があれば、教えて頂けないでしょうか。 お願い致します。

  • C言語のHP-UXからLinuxへのポーティング

    C言語で開発されたプログラムをHP-UXからLinuxへのポーティングする場合、どのように行えば効率的でしょうか? また、注意する内容があれば教えて頂けないでしょうか? ポーティング前のOSはHP-UX(詳細不明) ポーティング後のOSはRedHat Enterprise Linux 5.5 (64bit) C言語で開発されたプログラムは、ソケット通信でサーバ間通信を行う機能となります

  • パイプが切断されました

    Linux上のサーバプログラムとWindows上のクライアントプログラムをLAN上で通信させているのですが、 クライアントから切断すると必ずサーバ側で「パイプが切断されました」と表示され強制終了してしまいます。 原因や解析方法をご教授ください。

  • パイプメッセージが通りません

    以下の環境でソフトを製作しています。  VC++ Ver6.0  MFCベース ここで、2つのPC間でメッセージのやりとりをして連係して処理を進める箇所があり、パイプメッセージを使用しているのですが、パイプメッセージがうまく送られない現象が発生しています。PCのOSは一つはWindows2000で、もうひとつはXPです。Windows2000同志なら正常にやりとりできることは確認しています。  OS、または、ログオンするときのユーザ名などにより、何かパイプメッセージ使用に制限が発生してくるのでしょうか。  よろしくお願いします。

  • VC++でのTCP/IPサンプルプログラムでClient.exeを複数起動すると通信できない

    CQ出版Interface誌12月号のVC++でのTCP/IPサンプルプログラム http://www.cqpub.co.jp/interface/download/contents.htm 第1章 C言語で書くシンプルなWebサーバの製作 このプログラムのserver.exeを起動させて、Client.exeを複数起動させてみたのですが、Client.exeの片方が通信できるのですが、網片方のClient.exeはサーバとの通信ができていないようで、通信できていた方のClient.exeを停止させると通信ができるようになるようです。 このプログラムではClient.exeが複数あった場合に同時に通信を行わせると言うことはできないのでしょうか?

  • Visual C# について教えてください

    今まで、VB を使って Windows アプリを作ってきました。VB 歴は 10 年弱で、RS-232C 経由で測定機器を制御する Windows アプリなどを多数書いてきました。 先日 ANSI C の研修を受け、コマンドプロンプトで動くプログラムなら、C 言語でもある程度のものが書けるようになりました。これを機に、開発環境を VB から C ベースのものに移そうと考えています。 最近 VC# という言語がありますよね? 本屋でパラパラと見たところ、VC# は VB と似た環境で Windows アプリの開発ができそうで、その詳細を知りたくなりました。 現在、VC++ をはじめるか、VC# をはじめるか、悩んでおります。 質問は以下の3点です。 ・VC# で、EXE ファイル単体で動く Windows アプリが作れるのでしょうか? ・本やネットなどで、VC++ のサンプルソースは多く見かけますが、VC# のソースはあまり見かけません。これは開発を行う上で不利になりますか? VC# は VC++ のサンプルソースをほとんど流用できるのでしょうか? ・総合的に判断して、私には VC++ と VC# のどちらが適当だと思いますか? 個人的な判断で構いません。 以上、宜しくお願いいたします。

  • VB.NETによるTCP通信プログラムについて

    VB.NETによるTCP通信プログラムについて VB.NETによりTCP通信プログラムを開発しようと思っておりますが、TCP通信はクライアントとサーバーに機能が分かれると思いますが、一つのアプリケーションでサーバー機能とクライアント機能を有するアプリケーションは開発が可能でしょうか? サンプルプログラムを探しているのですが、どれも、クライアントとサーバーのどちらかの機能だけですが、両機能を持ち合わせたサンプルを掲載されているサイトをご存じの方は、お手数ですが、教えて頂けると助かります。 ご教授のほど、よろしくお願い致します。 Windows XP SP3 Visual Studio 2008 Visual Basic

  • 制御 通信 組みこみプログラム

    今までずっとwindows上で動くアプリの開発をしてきました。 制御、通信、組み込み系のプログラムにも興味が出てきて試しに作ってみたいと思います。 例えばPCと他のハードウェアと通信を行い、データのやり取りをする といったプログラムを作ってみたいのですが、初心者でもわかるようなサンプルプログラム もとい、サイトないでしょうか?