2013-03-19 36 views
1

我正在构建一个应用程序,该应用程序使用multiprocessing程序包的Listener/Client类与另一个脚本进行通信。为什么SO_REUSEADDR不能用于multiprocessing.Listener?

我可以成功地创建两个监听器和客户端,沟通,但我仍然接受的持久效果TCP TIME-WAIT - 之后我重新运行该脚本,我实例化侦听器时得到异常:

[错误98]地址已在使用

我不知道为什么会这样,因为据我所知,在默认情况下SO_REUSEADDR被设置在构造函数中的监听器(见Lib/multiprocessing/connection.py)。

我正在运行Ubuntu 12.10并使用Python 2.7。

回答

2

这通常发生在您未完全关闭插座时。你是否可以发布一些代码来证明你正在关闭套接字,即使你强制关闭你的应用程序?

+1

谢谢,我没有处理SIGINT这意味着我没有关闭套接字 - 现在改变了这一点,工作正常。 – liamzebedee 2013-03-19 03:01:50

相关问题