Boost :: ASIO:使用两个进程进行双向通信

时间:2016-05-27 10:29:14

标签: c++ linux tcp boost-asio

我想制作两个具有以下行为的应用程序(两个linux进程):

  • 将打开一个TCP服务器(在特定端口上),并且只会读取将由连接的客户端发送的数据。
  • 将向所有连接的客户端发送数据。

如果我使用线程(我只会共享asio tcp::socket对象),这将很容易,但由于某种原因我无法使用线程。

如何通过两种不同的应用实现这一目标? (没有某种形式的IPC)。

1 个答案:

答案 0 :(得分:1)

您甚至不需要两个进程,您可以将async_writes和async_reads发布到同一个消息循环中,它们将被处理。当然,并非严格并行,但如果您的环境限制了线程的使用(为什么?),这是最简单的选择(特别是如果想要也不使用任何IPC)。公平地说,I / O与程序执行并行发生,但是并不会并行调用完成处理程序,除非有更多线程在执行循环。

相关问题