已经在使用的python套接字服务器地址

时间:2017-01-02 08:44:56

标签: python sockets socketserver

您好我正在尝试使用python的SocketServer.TCPServer问题here没有给出任何解决方案并且因为不清楚而关闭

我的示例代码

class MyTCPHandler(SocketServer.BaseRequestHandler):
    def handle(self):
        # self.request is the TCP socket connected to the client         
        self.data = self.request.recv(1024).strip()                      
        print "{} wrote:".format(self.client_address[0])                 
        print self.data                                                  
        time.sleep(5)                                                    
        # just send back the same data, but upper-cased                  
        self.request.sendall(self.data.upper())                          
        print 'done handing request from {0}'.format(self.client_address[0])

if __name__ == '__main':
    HOST = socket.gethostname()
    PORT = int(sys.argv[1])
    server = SocketServer.TCPServer((HOST, PORT), MyTCPHandler)
    server.serve_forever()

问题是重启服务器时说的

socket.error: [Errno 98] Address already in use

查看server.shutdown()SocketServer.TCPServer正在做什么。

它没有关闭任何套接字,所以我尝试在另一个线程中运行它,通过调用来处理服务器的关闭

server.shutdown()
server.server_close()

尝试将通话顺序更改为shutdown()server_close()

我仍然得到socket.error: [Errno 98] Address already in use

我使用curl命令进行测试。

使用netstat我可以看到端口处于TIME_WAIT状态

0 个答案:

没有答案