Django测试服务器突然不工作?

Django测试服务器突然不工作?,django,port,Django,Port,我一直在使用Django web框架开发一个web应用程序。很久以前,我设置了一个别名,这样当我在命令提示符下键入go-d(运行Ubuntu Linux服务器)时,它会启动命令/manage.py runserver 123.456.789.132:2222/(此处所有信息都是假的)。在过去的6个月里,我不知道这一切都很好 今晚,发生了一件奇怪的事。我正在远处工作(用油灰遥控),突然我的连接中断了。我检查了服务器上的日志文件,看起来好像有人从另一个国家试图访问web服务器(我也在这台服务器上运行

我一直在使用Django web框架开发一个web应用程序。很久以前,我设置了一个别名,这样当我在命令提示符下键入
go-d
(运行Ubuntu Linux服务器)时,它会启动命令
/manage.py runserver 123.456.789.132:2222/
(此处所有信息都是假的)。在过去的6个月里,我不知道这一切都很好

今晚,发生了一件奇怪的事。我正在远处工作(用油灰遥控),突然我的连接中断了。我检查了服务器上的日志文件,看起来好像有人从另一个国家试图访问web服务器(我也在这台服务器上运行一个活动网站)。鉴于这些访问看起来可疑,我决定在apache2配置文件中的
行中使用
拒绝来阻止它们

在阻塞了他们的IP地址之后,我尝试用相同的命令启动Django测试服务器。但是,现在我得到了
错误:该端口已经在使用中。
错误

当我执行
netstat-antwup
时,它不会显示任何已建立或正在侦听的端口2222(我将其解释为端口2222未被使用)

这个新的
正在使用的端口
问题是否与我的网站的外地不友好访客有关

有什么帮助吗

[编辑-更新:]好的,所以我试着做了一个手动
/manage.py runserver 123.456.789.123:2244
(使用不同的端口)工作正常。然后我返回到原始别名
go-d
,它使用原始端口(2222),并且正在工作。我想我可以说我的问题得到了回答,但现在我很好奇到底发生了什么。 为什么我通常使用的端口突然已经在使用?Django测试服务器有时会这样做吗

有什么想法吗


谢谢

这也是我经常遇到的问题。 如果程序未正确关闭,套接字管理仍在侦听端口。 例如,当使用Ctrl+C组合键对某个对象进行量化时。 这会停留一段时间,在某一点上端口会再次释放。 只要改变端口,如果它发生了,应该是最好的方式为您这样做

有很多方法可以解决这个问题,但是你需要和django一起玩一会儿

我曾经读过一篇关于这个的文章,如果你想的话,我可以再找一次

在纯python中检查这一点的方法是

try:
    s.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR,1)
    s.bind((HOST, PORT))
except socket.error, e:
    if e....
        print "address already in use"

出于完整性的考虑,我也曾有过同样的问题,这是数据库连接的问题,所以请检查您的设置,但在这种情况下,在等待服务器启动一段时间后,它给了我一个错误。

非常好,谢谢!这对我来说是有意义的,并且消除了我的恐惧,即有人在我为Django使用的同一个端口上劫持了我的服务器。我想我只是惊讶于Django的测试web服务器已经完美地工作了几个月,然后突然停止了。