Thrift 客户端-服务器多重角色

发布于 08-26 18:27 字数 357 浏览 7 评论 0原文

这是我的第一个问题,如果表格有误,很抱歉!

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

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

有什么建议吗???

谢谢!

this is my first question, so sorry if the form is wrong!

I'm trying to make thrift server (python) and client (c++).
However I need to exchange messages in both direction. Client should register (call server's function and wait), and server should listen on same port for N (N-> 100k) incoming connections (clients). After some conditions are satisfied, server needs to call functions on each client and collect results and interpret them.

I'm little confused, and first questions is "can this be done in Thrift"?
Second question is related to mechanism that will allow me bidirectional communication. I guess that I will need two services. One with client's functions other with server's.
But I'm confused with calling code. I understand one way communication (calling functions from server), but with calling functions from client side I have a problem.

Any suggestions???

Thanks!

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

云朵有点甜2024-09-02 18:27:44

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

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

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

Consider using boost::asio for your client side, though depending on your level of C++, the code may seem too dense.

If you're looking for a simple example, take a look at:
http://www.linuxhowtos.org/C_C++/socket.htm

It contains both server-side and client-side code. Both sides create a socket and two-way communication is achieved by each side posting data to the socket. The server side is generally multi-threaded (with one thread per connection). The client side can be implemented as a single-threaded loop that alternates between querying the socket for any incoming information, performing computations, and posting results back to the socket.

疯狂的代价2024-09-02 18:27:44

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

希望这有帮助:)

Since, you say you are having problem with calling functions from client side, here is a sample Thrift code with Java server and C++ client, where the client calls a function in server. http://fundoonick.blogspot.com/2010/06/sample-thrift-program-for-server-in.html

Hope this helps :)

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文