アプリケーション間通信すりるには?


panpan  2012-09-28 19:50:51  No: 147827

はじめまして。
質問です。
AとBの2つのアプリケーション間をデータ通信したいのです。
条件として、
  1台のPC内で2つのアプリをデータ通信させる。
  A専用PCとB専用PC間をデータ通信させる。
この2つの条件に合った方法は有りますでしょうか。
ちなみに、2台のPC間の通信はLANを使って行った事が有りました。

よろしくお願いします。


オショウ  2012-09-30 02:55:05  No: 147828

ソケット通信させるならば、同一PC内でもLAN間でも
問題なくできます。

ただしセキュリティの設定がキチンとしてあるならば、両
方のPCの受信ポートは開けておく設定が必要です。

あと、文字列的送受信ならば、TCPよりもUDPの方が
楽(コードがすくなくてすむ)かな・・・

※  よい使い方ではありあませんが、SQL Server Express
    を導入して、各々のアプリが、SqlDendency で通信用
    DBのテーブルを監視しれば、Insetされれば、即、
    取得できるので、イベントドリブン的動作は可能。

※  取りこぼしする可能性がありますが・・・
    どちらかのPCか、双方のPCで、通信用フォルダを
    共有公開し、相手がそこにメッセージ通信用ファイル
    を作成して書き込む。とか・・・
    ファイルの作成監視すれば、SqlDependencyと同様に
    イベントドリブンに動作が可能。
    注意点は、相手先フォルダに直接OpenしてWriteして
    いたら、Openの段階で相手先が拾ってしまう為、ロー
    カル側にファイルを作成してから、一気にコピーする
    方法が好ましい。

※  これもセキュリティーに関わりますが・・・
    イベントログに書き込むという方法もあり・・・かと。
    イベントログを監視するようにすれば、やはりイベン
    トドリブン的に動作が可能。

    あるものを使うか・・・ゼロから作るか・・・
    どのみち、ある一定のスキルは必要です。

以上。参考まで


panpan  2012-10-03 03:15:29  No: 147829

返信送れてすみません。
オショウさん、教えて頂きまして有難うございます。
後半はかなりスキルが必要なので、初心者の私は「ソケット通信」でしてみようと思います。
ちなみに「ソケット通信」とはTCP/IPを使っていたはずですが、PCを2台使っての通信はやった事が有るのですが、1台の時はどのようにすれば良いのでしょうか。


オショウ  2012-10-03 07:12:43  No: 147830

基本的には同じです。
ただ同一マシン上の場合、ポートアドレスが同じでは開けられません
ので、AプロセスとBプロセスとで、異なるポートを使用する必要が
あるだけで、IPアドレスは同じです。

2台のPCの場合は、IPアドレスは異なりますが、ポートは同じにな
ります。

以上。参考まで


※返信する前に利用規約をご確認ください。




  


  このエントリーをはてなブックマークに追加