我已经基于示例
here创建了一个运行ThreadingTCPServer的简单测试应用程序(Python 2.6.1).如果客户端发送命令“bye”,我想关闭服务器并从应用程序中彻底退出.退出部分工作正常,但当我尝试重新运行应用程序时,我得到:
socket.error: [Errno 48] Address already in use
我尝试了here给出的解决方案来设置套接字选项,但这似乎没有帮助.我已经尝试了各种方法关闭服务器,但总是得到相同的错误.
知道我做错了什么吗?
import SocketServer
import socket
import sys
import threading
import time
class RequestHandler(SocketServer.BaseRequestHandler):
def setup(self):
print("Connection received from %s" % str(self.client_address))
self.request.send("Welcome!\n")
def handle(self):
while 1:
data = self.request.recv(1024)
if (data.strip() == 'bye'):
print("Leaving server.")
self.finish()
self.server.shutdown()
# None of these things seem to work either
#time.sleep(2)
#del sel