我要为windows和linux编写一个跨平台程序: Java程序将发送数据到tcp/ip端口,而C/C++程序将不断侦听tcp/ip端口,当它获得一些数据时,它会做一些工作,并将结果数据发送到另一个tcp/ip端口,现在Java程序将从该端口读取数据并执行一些操作。我更担心的是C/C++部分。你能帮助任何细节或有用的链接或示例代码吗?
发布于 2011-12-30 11:03:26
有大量的网络API/库和事件通知机制。由于我假设您刚接触C++,并且不想为了从实现中挤出微秒时间和/或为不同的平台编写不同的代码而真正处理特定于平台的功能,因此我认为您最好的选择是使用Boost ASIO -一个用于网络和低级I/O编程的跨平台C++库。它有一个非常好的文档,大量的例子,并且通常很容易使用。它可以在许多平台上工作,而不需要更改应用程序中的一行代码。它有它的陷阱,但它们不是非常重要的,除非你正在做的事情非常复杂,对性能、内存使用、延迟、吞吐量或以上所有方面都有很多严格的要求。
以防我的假设不正确,有很多选择。其中一些是:
祝好运!
发布于 2011-12-30 11:02:45
我的建议是:boost::asio用于C++跨平台联网,google protocol buffers用于指定跨平台/跨语言协议。
使用boost::asio发送/接收字节的数据,并使用google协议缓冲区将这些字节转换为有用的内容(整数、字符串等)。
https://stackoverflow.com/questions/8675703
复制相似问题