0

私はここで少し立ち往生しています。C# .NET で記述され、使用したいデバイスと通信するサーバー Bがあります (デバッグなど)。次に、Eclipse と通信するサーバー A (C で記述) があります。この2点は全く問題ありません。

問題は、サーバー Aからサーバー Bに通信する必要がある時点から始まります。Bの DLL は.NET Framework 2.0 で記述されており、C コード内で使用するのはかなり複雑なため、Aで使用することはできません。

私の質問は次のとおりです。ここでのオプションは何ですか?

送信する必要のある複雑なデータは多くありません。データは文字列、数値、またはバイナリ データ (実行可能) のいずれかになるため、すべてバイト単位で簡単に送信できます。

TCP 経由でサーバーからサーバーにバイト コマンドを送信する単純なプロトコルを作成することを考えていましたが、これが良い解決策であるかどうかはわかりません。

どちらのプロジェクトも非常に大きいため、これは基本的な設計上の決定です。慎重に決めなければなりません。助言がありますか?

ありがとう!(私にとってより良いタグがあれば、この質問のタグを自由に編集してください)

4

2 に答える 2

1

コメントを見て、両方のサーバーが同じマシンでホストされる方法を確認すると、基本的なメモリ マップ ファイルを使用して 2 つの間で通信することを検討できます。

C# のメモリ マップ ファイル/ Cの名前付き共有メモリ

ただし、このプラットフォームを独立させたい場合は、C# や C などで利用できるProtobufの使用を検討できます。これには、TCP プロトコルを作成するという考えが必要ですが、十分に文書化された業界全体のプロトコルを使用すると、アプリケーションのサポートが容易になります。

于 2014-02-03T18:04:04.770 に答える