我目前正在尝试在 Xubuntu 12.10 x64 上设置一个 SiriServer(这不是重点),当我运行服务器时,python 返回错误
socket.error: [Errno 98] Address already in use.
默认情况下,服务器尝试在端口 443 上运行,不幸的是,该端口是该应用程序正常运行的必需端口。
为了仔细检查端口 443 上是否有任何程序在运行,我执行以下操作:
lsof -i :443
没有结果,除非我打开了 Chrome 或 Firefox 之类的程序,但最后我还是关闭了它们。以下是尝试运行服务器应用程序后的完整返回结果。
dustin@dustin-xubuntu:~/Applications/SiriServer$ sudo python siriServer.py
CRITICAL load_plugins Failed loading plugin due to missing module: 'Wordnik library not found. Please install wordnik library! e.g. sudo easy_install wordnik'
INFO <module> Starting Server
Traceback (most recent call last):
File "siriServer.py", line 493, in <module>
server = SiriServer('', options.port)
File "siriServer.py", line 425, in __init__
self.bind((host, port))
File "/usr/lib/python2.7/asyncore.py", line 342, in bind
return self.socket.bind(addr)
File "/usr/lib/python2.7/socket.py", line 224, in meth
return getattr(self._sock,name)(*args)
socket.error: [Errno 98] Address already in use
我不知道该怎么做,因为这是设置此应用程序的最后一部分。任何帮助都非常感谢。
答案1
您是否尝试过 netstat -an | grep LISTEN ? 来查看是否有其他程序正在监听此端口。另外请注意,443 小于 1024,因此要绑定到该端口,您需要以 root 身份运行此命令。
答案2
确保以lsof -i :443
root 身份运行。或者,以非特权用户身份运行
netstat -ant | grep :443
至少看看该端口上是否有东西。
您还可以通过策略性地添加来确保您正在检查正确的端口
print options.port
在调用之前SiriServer(...)