首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >修正通信模型-消息传递或套接字

修正通信模型-消息传递或套接字
EN

Stack Overflow用户
提问于 2010-10-11 10:18:58
回答 4查看 1.7K关注 0票数 2

我的情况是:c++程序需要使用FIX协议与c++程序对话。

我的解决方案:- Messaging: C++程序发布一个固定格式的文本,Java可以使用quickfix/j. - socket来使用和解析该文本。-套接字:在Java程序中设置一个修复服务器,然后C++程序作为客户端可以连接到这个套接字并使用quickfix将字节流写入其中。Java程序使用quickfix/j解析字节流。

My问题: 1.套接字解决方案是否存在兼容问题,即用/j编码的字节流可以完全解码? 2.哪一个更好?缺点和优点。

提前谢谢。

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2010-10-11 10:26:54

修复消息传递将是一个更容易的解决方案,而不是实现套接字。quickfix库中已经嵌入了套接字通信。除非你正在做一些非常不同的事情,否则重新实现是没有用的。引擎是用来破译修复信息的。如果要修改库的任何套接字通信,可以更改库本身。无论如何,你都有源代码。

如果您尝试实现套接字,您可能需要在套接字周围编写包装器来解析从C++到Java的消息,反之亦然。

您有quickfix库的C++版本。使用它作为发起者向Java受体发送修复消息。您可能不必担心编写C++服务器来发送字节流中的修复消息。让底层库来做沟通的工作,而不是你自己。

票数 1
EN

Stack Overflow用户

发布于 2010-10-11 10:28:38

修复可能更容易。但是,如果选择套接字,请确保将C++程序上的数据发送/recv转换为/从网络字节顺序转换。(参见参考资料:htons()htonl() ntohs()ntohl())。Java总是使用网络字节顺序,所以您不必在那里进行任何转换。

票数 0
EN

Stack Overflow用户

发布于 2010-10-11 13:32:28

FIX是一种基于文本的协议,也就是说,您不必担心字节顺序。在连线层面上,你所做的就是发送字符缓冲区。因此,如果您在C++程序中编写一个基于java (quickfixj)的客户机/服务器,只要您坚持FIX协议,您就不会有任何问题。

然后,正如DumbCoder前面所指出的,如果您不太关心性能,可以使用quickfix ( C++版本!)

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3905295

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档