我有一个用 python 编写的客户端服务器架构。大多数时候它工作正常,但有时,在我停止服务器并立即重新启动它之后,我收到以下错误:
接受失败,原因是:22 消息无效参数,错误:[Errno 22] 无效参数
但是,如果我等待几分钟并再次启动相同的脚本而不进行任何更改,它就可以正常工作。
这是我在服务器上用来接受来自客户端的传入连接的循环:
try:
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
s.bind(('',port))
s.listen(1)
except:
#logError()
while True:
try:
conn, address = s.accept() #THIS ACCEPT FAILS SOMETIMES
multiprocessing.Process(target=HandleConnection, args=(conn, address, messageQueue, taskQueue, IOLock, numberOfConnections, numberOfConnectionsLock,resultsDirectory)).start()
except socket.error, msg:
#logError() -> this except catches the error
运行服务器后端口是否会阻塞一段时间?如果是这样,如果我想在服务器退出后立即重新启动服务器,是否有办法查询端口是否被阻塞并等到它被解除阻塞?