同时运行Web服务器和TCP服务器

时间:2014-01-25 23:16:14

标签: python web tcp flask

我使用Flask进行了网络服务器设置,但它确实有效。另外,我有一个演示TCP服务器,它也可以工作。我希望他们在同一个过程中运行,这样他们就能沟通;但是,我遇到了困难,因为他们都想打开一个端口,我得到了错误:

socket.error: [Errno 98] Address already in use

我的理解是,一个进程无法打开多个端口 - 但如果我弄错了,请纠正我。是否可以使用自己的端口运行子进程?或者是否有一种简单的方法在Python中的进程之间进行通信?

让网络服务器和TCP服务器传递信息的最佳方法是什么,例如对另一个反映的更新?

谢谢!

2 个答案:

答案 0 :(得分:0)

为烧瓶Web服务器和TCP服务器使用不同的端口号。

答案 1 :(得分:0)

进程可以使用多个端口,但通常不希望多个进程使用相同的端口。

在这种情况下,您可能只需要一对SO_REUSEADDR,每个进程一个: http://docs.python.org/3/library/socket.html

通常,* ix内核将拒绝允许从端口获取数据,即使在使用它的进程退出一段时间之后也是如此。这被视为一个安全问题,因为否则其他一些进程可以在之后侦听端口,并获取用于第一个进程的数据。 SO_REUSEADDR告诉内核“不要这样做”。