【发布时间】:2011-07-14 16:06:13
【问题描述】:
(对不起我的英语)
是否可以构建一个应用程序(实际上是 2 个)来实现进程之间的双向通信?
我知道两个“框架”来通信不同的进程(用不同的语言)Thrift 和 Protocol 缓冲区。
我知道 thrift 在客户端/服务器模式下工作,所以如果我想要双向通信,我需要像客户端和服务器一样构建两端/进程。
客户端/服务器 客户端/服务器
我不知道这种做法是否正确。
但是.. 我无法使用协议缓冲区找到有关此的信息。这可能吗?
我有一个 C++ 进程和一个 Node.js (Javascript) 应用程序.. C++ 进程向 de Node.js 应用程序发送通知(这很好用,我使用 thrift 进行测试)..
另一方面,用户与 Node.js 应用程序交互.. 在某些情况下,node.js 应用程序需要通知 de C++ 进程.. 所以我需要双向通信..
有什么想法吗?
提前致谢
【问题讨论】:
-
在面向传输的网络的最底层,你总是有一个客户端和一个服务器,因为服务器是listen()s和accept()s的,而客户端是一个连接(),但之后通信中没有进一步的不对称性。如果两个进程都位于同一台机器上,则可以使用管道。
-
很明显,在低层我们总是有一个客户端/服务器..但在高层实现中,我们的想法是只查看或使用一个通道......我试图完成这个..
-
好吧,一旦你建立了连接,图片就相当对称了。双方可以平等地发送和接收。
-
@Kerrek SB:严格来说并非如此。两个程序可以同时调用
bind,然后每个程序基本上同时调用connect。这导致创建 TCP 连接的同时 SYN 交换方法。 -
@Omnifarious:非常有趣。为什么不将其发布为答案?这是一种可行的方法吗?
标签: c++ node.js protocols thrift buffer