如何在thrift客户端上指定reuseaddr socket选项?

时间:2016-06-06 12:31:37

标签: network-programming thrift

我现在正在使用thrift-python。在我检查了它的源代码后,我发现在服务器端,thrift setsockopt(reuseaddr,1)默认情况下。这对Ctrl + C很有帮助,并重启服务器进行调试。

但是现在我在localhost上有太多客户端,他们使用短连接与服务器通信。当它们关闭连接时,那些随机端口正好处于TIME_WAIT状态!所以他们可以覆盖我想在其上运行另一个节俭服务器的端口。那么,我如何在thrift客户端指定REUSEADDR选项?

1 个答案:

答案 0 :(得分:0)

我已经弄清楚有关节俭的一些细节,

  1. 在服务器端,默认情况下设置REUSEADDR选项;
  2. 在客户端,似乎我们无法在底层TCP连接上指定该选项;
  3. 在客户端,我们可以使用长连接而不是短连接来避免过多的TIME_WAIT。为此,我们需要调用transport.open()一次;
  4. 在服务器端,我们可以使用TForkingServer而不是ThreadedPoolServer;