Edited at

考察 > ソフト間通信 > 最長100文字のコマンドを送信, 応答を受信

More than 1 year has passed since last update.


動作環境

Windows 7 pro 32bit


同じPC上で複数のソフト間の通信について検討中。

今のところ知っている情報より検討


File Mapping使用


  • FileMappingの使用


    1. Sender側でNamed File Mappingを作成

    2. Sender側からReceiver側へSendMessage()で書出し完了通知

    3. Receiver側がNamed File Mappingから内容を読取る

    4. Receiver側からSender側へSendMessage()で読取り完了通知

    5. Sender側でCloseHandle()する. File Mappingが削除される



上記の処理において、Sender側からSendMessage()した後に、ある指定のタイムアウト時間(1000msec)で応答がなかった時にCloseHandle()する。

応答については上記の反対を行う。


Window Message使用


  • Window Message使用


    1. Sender: Window Messageで1文字ずつ最大100個のコマンド相当数値を送り続ける

    2. Receiver: 100文字(あるいはある指定の終端数値)まで受取る



応答については上記の反対を行う。

スタートビット、ストップビットに相当する文字(に対応するlong型?)を定義しておかないと、Receiver側で通信内容の区切りが分からなくなる。