【问题标题】:Linux I/O managerLinux I/O 管理器
【发布时间】:2011-12-20 13:57:46
【问题描述】:

这是我不知道该怎么称呼它的问题之一,所以我无法谷歌它。

是否有一个 Linux (Ubuntu 11.04) 库/类/套件可以将我的服务例程/程序 (C/C+) 连接到网络,而无需我编写网络访问代码?换句话说,假设我有我想提供的私人服务。服务 1 提供基于 TCP 的消息并回复客户端的源端口。服务 2 为 UDP 请求提供服务,可能是客户端上的一个固定端口,而不考虑源端口。服务 4 需要是可以发送消息/获取响应的 TCP 客户端。

必须告知 I/O 库使用什么协议、服务或成为客户端、使用/尊重/拒绝的 IP 地址、安全协议等。它还需要知道如何联系任何程序我迷上了它,即service_1,service_2 ...信号?回调? D 总线?

有什么想法吗?建议?跨操作系统解决方案的加分项。

谢谢,

【问题讨论】:

  • 你说的是“sockets”吗?
  • 致 Tio Pepe:我刚刚找到 ICE,但我注意到它是 GPL。在封闭系统中很难使用 GPL。叹息。
  • Oli Charlesworth:好吧,从某种意义上说,套接字是该工具将打开并维护它用来与任何东西通信的套接字。我希望我的代码说出诸如 server = MakeIoServer("TCP", SERVER, port_3333, ... MyCallback, ...) 和 IoServe(server, dataContents, options...) 之类的东西
  • 我最终决定 D-bus 是我最好的选择,只是为了让它从我的手下架构出来。必须以艰难的方式去做并创建套接字类。哦,它应该是可重复使用的。谢谢@SteveC 和所有人!

标签: c++ linux io


【解决方案1】:

如果您正在寻找跨网络的数据 I/O,而无需深入研究 POSIX 套接字接口,您可能需要查看 libcurl。这当然是假设您要使用的协议受 cURL 支持(它支持许多不同的基于网络的数据传输协议)。

【讨论】:

  • 我一直以为 libcurl 只处理 http(s)。看来我今天学到了新东西! +1
【解决方案2】:

另一个广泛使用的消息传递系统是D-Bus

【讨论】:

    【解决方案3】:

    Ice

    易于使用、跨操作系统、多语言支持等。通信的好选择。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-09-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-05-02
      • 2012-08-06
      • 1970-01-01
      相关资源
      最近更新 更多