Python套接字代理示例,调用bind()时不断出现错误。。为什么?

Python套接字代理示例,调用bind()时不断出现错误。。为什么?,python,linux,sockets,proxy,network-programming,Python,Linux,Sockets,Proxy,Network Programming,我正在编写一个临时代理,它从fifo文件中获取命令,然后使用python套接字和select.poll托管任意代理连接。。我的问题是,调用socket.bind时,非常频繁。。我要么收到“坏文件描述符”错误,要么收到“非套接字上的套接字操作”,我不知道为什么?以下是代码片段: pull_sock=socket.socket() push_sock=socket.socket(socket.AF_INET, socket.SOCK_STREAM) pull_sock.setsockopt(sock

我正在编写一个临时代理,它从fifo文件中获取命令,然后使用python套接字和select.poll托管任意代理连接。。我的问题是,调用socket.bind时,非常频繁。。我要么收到“坏文件描述符”错误,要么收到“非套接字上的套接字操作”,我不知道为什么?以下是代码片段:

pull_sock=socket.socket()
push_sock=socket.socket(socket.AF_INET, socket.SOCK_STREAM)
pull_sock.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1)
push_sock.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1)
clients={}
# start pull connection
try:
    print "connecting to:", saddr, sport
    pull_sock.connect((saddr,sport))
    except Exception, e:
        print "unable to connect:", repr(e)
        self._threadsafe_remove_dport(dport)
        return
    # start push server connection
    try:
        sleep(1)
        push_sock.bind(('',dport))
        push_sock.listen(1)
        print "host new proxy on %d to %s:%d" % (dport, saddr, sport)
        print "pushfd=",push_sock.fileno(),"pullfd=",pull_sock.fileno()
        # register sockets for async polling
        sockpoll = select.poll()
        sockpoll.register(push_sock, select.POLLIN | select.POLLOUT)
        sockpoll.register(pull_sock, select.POLLIN)
总是失败的是
bind()
命令,而不是其他命令。我尝试过“”(所有网卡)、“127.0.0.1”、“localhost”。。。所有人都做同样的事情

我还注释掉了
REUSEADDR
部分。但这也没有什么区别:(


顺便说一句,使用Arch Linux

Hmmm

但现在看来这是一个梦想