python - 我可以将多个服务器绑定(bind)到同一个 TCP 端口吗?

标签 python port

我预计同一端口上有多个服务器会导致问题。事实上,当我尝试在同一端口上启动两个服务器时,我希望它抛出异常。问题是,它似乎非常乐意在同一端口上启动多个服务器。我可以让以下代码的许多实例运行得很好,没有异常。

import BaseHTTPServer
import SimpleHTTPServer
import sys

def main():
    try:
        server = BaseHTTPServer.HTTPServer(('127.0.0.1',5000), SimpleHTTPServer.SimpleHTTPRequestHandler)
        print "On port: " + str(server.socket.getsockname()[1])
    except Exception, e:
        print e
    server.serve_forever()

if __name__ == "__main__":
    main()

所有这些都声称位于端口 5000 上。如果它尝试使用已占用的端口,我怎样才能让它抛出异常?

编辑:这是Python 2.6.4

编辑2:http://www.youtube.com/watch?v=rVOG3JdbHAM&feature=youtu.be因为人们似乎认为我所解释的事情不可能?或者我完全误解了人们。不管怎样,这段视频应该可以澄清这一点。我启动了两台服务器,它们都没有打印出任何异常。当我关闭第一个时,第二个开始工作。为什么会发生这种情况?我希望第二个服务器永远不会启动并打印异常。这不是应该发生的事吗?

最佳答案

我尝试执行您的代码,第二个实例返回,

 [Errno 98] Address already in use

理应如此。 SuSE Linux 上的 Python 2.6。

可以使用netstat实用程序检查端口5000是否真的被占用?

关于python - 我可以将多个服务器绑定(bind)到同一个 TCP 端口吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11570290/

相关文章:

python - 绕过 dok_matrix.get 类型检查

python - 为什么这个看似递归的代码在 skimage 的源代码中可以工作?

sockets - 被动和主动 socket

c - 查找服务器的IP和端口

mobile - 来自移动设备的 Webstorm 本地主机

java - 如何使用普通的虚拟主机包设置具有特定 IP 和端口的 Java 服务器?

python - 使用pyplot的线性回归中的奇怪图形

python - 如何将 MaxPooling1D 与 Conv1D 结合使用

Python 别名

http - 带有非本地主机的实时站点的 Go Revel 框架