2010-03-25 56 views
3

这是我的第一个问题,所以对不起,如果表格是错误的!节俭客户端 - 服务器多角色

我想使节俭服务器(python)和客户端(C++)。 但是我需要在两个方向交换消息。客户端应该注册(调用服务器的功能和等待),并且服务器应该在同一个端口上监听N(N-> 100k)传入连接(客户端)。满足一些条件后,服务器需要调用每个客户端的功能并收集结果并解释它们。

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

任何建议???

谢谢!

+0

你为什么用节俭? – compie 2010-03-25 22:09:55

+0

已经提出,我需要为客户端和服务器使用不同的语言支持。 – dexter 2010-03-26 09:27:54

回答

1

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

如果你正在寻找一个简单的例子,来看看: http://www.linuxhowtos.org/C_C++/socket.htm

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

+0

节俭已被提议作为一种方式来做到这一点... 关键点是,他们必须在不同的PL(蟒蛇和C++), ,我只是想知道这可以在Thrift中完成吗?另外,由于预计会有大量的客户端,因此应避免在服务器端进行多线程。 – dexter 2010-03-26 09:26:29