python中socket的端口重用。网上的解决方法不行!

server = socket(AF_INET, SOCK_STREAM)
print 'server is ok!'
server.setsockopt(SOL_SOCKET, SO_REUSEADDR, 1)
print 'setsockopt is ok!'
server.bind(add)
print 'bind is ok!'
server.listen(10)
print 'listen is ok!'

还是会报错。
socket.error: [Errno 98] Address already in use

参考这个试试

 import socket
import SimpleHTTPServer
import SocketServer
# import os # uncomment if you want to change directories within the program

PORT = 8000

# Absolutely essential!  This ensures that socket resuse is setup BEFORE
# it is bound.  Will avoid the TIME_WAIT issue

class MyTCPServer(SocketServer.TCPServer):
    def server_bind(self):
        self.socket.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1)
        self.socket.bind(self.server_address)

Handler = SimpleHTTPServer.SimpleHTTPRequestHandler

httpd = MyTCPServer(("", PORT), Handler)

# os.chdir("/My/Webpages/Live/here.html")

httpd.serve_forever()

看一下这个:
http://stackoverflow.com/questions/14388706/socket-options-so-reuseaddr-and-so-reuseport-how-do-they-differ-do-they-mean-t