请问多线程threading怎样使用socket

请问多线程threading怎样使用socket

def check(ip,port):
    ftp=socket(AF_INET,SOCK_STREAM)
    ftp.settimeout(3)
    print 'checking',ip,'......'
    try:
        con=ftp.connect((ip,port))
    except:
        return 0
    try:
        banner=ftp.recv(4096)
    except:
        return 0
    return banner


用这个函数单线程没问题,可以得到ftp的banner,
但是用threading得多线程,就不行了,所有的banner都返回0.我这样用会有冲突么?还是怎么回事,或者有什么别的方法?谢谢!
开2个线程都可以返回正确的结果,县城越多越没有结果,难道多线程socket之间有冲突么?

不会用多线程socket也要用互斥锁么?
会不会是服务器对连接的限制
hehe ,谢谢提醒,

是防火墙的原因,
呵呵,解决就好。
哎,原来是windows 连接数限制的原因,换了个linux就行了。
郁闷,浪费n多时间。