【问题标题】:Thrift client-server multiple rolesThrift 客户端-服务器多重角色
【发布时间】:2011-01-31 21:22:27
【问题描述】:

这是我的第一个问题,如果表格有误,请见谅!

我正在尝试制作节俭的服务器 (python) 和客户端 (c++)。 但是我需要双向交换消息。客户端应注册(调用服务器的功能并等待),服务器应在同一端口上侦听 N(N-> 100k)个传入连接(客户端)。在满足某些条件后,服务器需要调用每个客户端上的函数并收集结果并解释它们。

我有点困惑,第一个问题是“这可以在 Thrift 中完成”吗? 第二个问题与允许我进行双向通信的机制有关。我想我将需要两项服务。一种具有客户端功能,另一种具有服务器功能。 但我对调用代码感到困惑。我了解一种通信方式(从服务器调用函数),但是从客户端调用函数我遇到了问题。

有什么建议吗???

谢谢!

【问题讨论】:

  • 已经提出,我需要为客户端和服务器使用不同的语言支持。

标签: c++ python client-server thrift


【解决方案1】:

考虑为您的客户端使用boost::asio,尽管根据您的 C++ 水平,代码可能看起来过于密集。

如果您正在寻找一个简单的示例,请查看: http://www.linuxhowtos.org/C_C++/socket.htm

它包含服务器端和客户端代码。双方都创建一个套接字,并且通过每一方将数据发布到套接字来实现双向通信。服务器端通常是多线程的(每个连接一个线程)。客户端可以实现为单线程循环,在查询套接字以获取任何传入信息、执行计算和将结果返回到套接字之间交替进行。

【讨论】:

  • Thrift 已被提议作为一种方法......关键是它们必须在不同的 pl(python 和 c++)中,我只是想知道这可以在 Thrift 中完成吗?此外,由于需要大量客户端,因此应避免在服务器端使用多线程。
【解决方案2】:

既然你说你在从客户端调用函数时遇到问题,这里是一个带有 Java 服务器和 C++ 客户端的示例 Thrift 代码,其中客户端调用服务器中的函数。 http://fundoonick.blogspot.com/2010/06/sample-thrift-program-for-server-in.html

希望这会有所帮助:)

【讨论】:

    猜你喜欢
    • 2018-06-08
    • 2017-07-23
    • 2012-05-23
    • 2014-03-16
    • 1970-01-01
    • 2015-02-11
    • 1970-01-01
    • 2022-01-28
    • 1970-01-01
    相关资源
    最近更新 更多