我的情况是:c++程序需要使用FIX协议与c++程序对话。
我的解决方案:- Messaging: C++程序发布一个固定格式的文本,Java可以使用quickfix/j. - socket来使用和解析该文本。-套接字:在Java程序中设置一个修复服务器,然后C++程序作为客户端可以连接到这个套接字并使用quickfix将字节流写入其中。Java程序使用quickfix/j解析字节流。
My问题: 1.套接字解决方案是否存在兼容问题,即用/j编码的字节流可以完全解码? 2.哪一个更好?缺点和优点。
提前谢谢。
发布于 2010-10-11 10:26:54
修复消息传递将是一个更容易的解决方案,而不是实现套接字。quickfix库中已经嵌入了套接字通信。除非你正在做一些非常不同的事情,否则重新实现是没有用的。引擎是用来破译修复信息的。如果要修改库的任何套接字通信,可以更改库本身。无论如何,你都有源代码。
如果您尝试实现套接字,您可能需要在套接字周围编写包装器来解析从C++到Java的消息,反之亦然。
您有quickfix库的C++版本。使用它作为发起者向Java受体发送修复消息。您可能不必担心编写C++服务器来发送字节流中的修复消息。让底层库来做沟通的工作,而不是你自己。
发布于 2010-10-11 10:28:38
修复可能更容易。但是,如果选择套接字,请确保将C++程序上的数据发送/recv转换为/从网络字节顺序转换。(参见参考资料:htons()、htonl() ntohs()和ntohl())。Java总是使用网络字节顺序,所以您不必在那里进行任何转换。
发布于 2010-10-11 13:32:28
FIX是一种基于文本的协议,也就是说,您不必担心字节顺序。在连线层面上,你所做的就是发送字符缓冲区。因此,如果您在C++程序中编写一个基于java (quickfixj)的客户机/服务器,只要您坚持FIX协议,您就不会有任何问题。
然后,正如DumbCoder前面所指出的,如果您不太关心性能,可以使用quickfix ( C++版本!)
https://stackoverflow.com/questions/3905295
复制相似问题