2

私の状況は次のとおりです。c++プログラムは、FIXプロトコルを使用してJavaプログラムと通信する必要があります。

私の解決策:-メッセージング:C ++プログラムは、Javaプログラムがquickfix/jで使用および解析できるFIX形式のテキストを公開します。-ソケット:JavaプログラムでFIXサーバーをセットアップすると、クライアントとしてのC ++プログラムがこのソケットに接続し、quickfixを使用してバイトストリームをソケットに書き込むことができます。Javaプログラムは、quickfix/jを使用してバイトストリームを解析します。

私の質問: 1。ソケットソリューションに互換性の問題はありますか?つまり、quickfixでコード化されたバイトストリームはquickfix / jで完全にデコードできますか?2.どちらが良いですか?短所と長所。

前もって感謝します。

4

4 に答える 4

1

FIXメッセージングは​​、ソケットを実装するよりも簡単なソリューションです。クイックフィックスライブラリにはすでにソケット通信が組み込まれています。非常に異なることをしているのでない限り、再実装しても意味がありません。エンジンは、FIXメッセージを解読することを目的としています。また、ライブラリのソケット通信のいずれかを変更する場合は、ライブラリ自体を変更できます。とにかくソースコードがあります。

ソケットを実装しようとすると、C ++からJavaに、またはその逆にメッセージを解析するために、ソケットの周りにラッパーを作成する必要がある場合があります。

QuickfixライブラリのC++バージョンがあります。これをイニシエーターとして使用して、JavaアクセプターにFIXメッセージを送信します。おそらく、バイトストリームでFIXメッセージを送信するためのC++サーバーの作成について心配する必要はありません。基礎となるライブラリに、自分ではなくコミュニケーションを行う作業を任せます。

于 2010-10-11T10:26:54.797 に答える
0

FIXの方が簡単かもしれません。ただし、ソケットを選択する場合は、C++プログラムとの間のデータ送信/受信をネットワークバイトオーダーに変換するようにしてください。htons()( 、、、htonl() ntohs()およびのリファレンスを参照してくださいntohl())。Javaは常にネットワークバイトオーダーを使用するため、そこで変換を行う必要はありません。

于 2010-10-11T10:28:38.207 に答える
0

FIXはテキストベースのプロトコルです。つまり、バイト順序について心配する必要はありません。ワイヤーレベルでは、あなたがしているのは文字のバッファを送ることだけです。したがって、C ++プログラムをJava(quickfixj)ベースのクライアント/サーバーに書き込んでいる場合、 FIXプロトコルに準拠している限り、問題は発生しません。

繰り返しになりますが、DumbCoderが上で指摘したように、パフォーマンスについて過度に心配していない場合は、quickfix(C ++バージョン!)を使用できます。

于 2010-10-11T13:32:28.230 に答える
0

修正エンジンは、他のパーティの修正エンジンと通信できるように記述されています。両当事者の言語やプラットフォームは関係ありません。一方にはJAVAバージョンを使用し、もう一方にはC++バージョンを使用するだけです。

于 2011-08-30T19:57:39.237 に答える