def make_socket(proto, addr, source=None, source_port=0):
af = ip_family(addr[0])
if pysocks:
sock = pysocks.socksocket(af, proto, 0)
else:
sock = socket.socket(af, proto, 0)
sock.setblocking(0)
if source is None:
source = {socket.AF_INET: '0.0.0.0',
socket.AF_INET6: '::'}[af]
try:
sock.bind((source, source_port,))
sock.connect(addr)
except socket.error as e:
if e.args == errno.EINPROGRESS:
pass
return sock
评论列表
文章目录