def listen(self):
s=None
if not self.hostname:
self.hostname=None
last_exc=None
for res in socket.getaddrinfo(self.hostname, self.port, socket.AF_UNSPEC, socket.SOCK_DGRAM, 0, socket.AI_PASSIVE):
af, socktype, proto, canonname, sa = res
try:
s = socket.socket(af, socktype, proto)
s.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1)
except socket.error as msg:
s = None
last_exc=msg
continue
try:
s.bind(sa)
except socket.error as msg:
s.close()
s = None
last_exc=msg
continue
break
self.sock=s
if self.sock is None:
raise last_exc
评论列表
文章目录