3

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

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

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

有什么建议么???

谢谢!

4

2 回答 2

1

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

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

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

于 2010-03-26T04:08:13.063 回答
1

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

希望这可以帮助 :)

于 2010-06-28T06:36:13.057 回答