在Python中连接多播服务器
这是我用来连接多播服务器的代码,这样处理异常是不是最好的方法。我想要做的是,如果发生异常,就重试连接。
def initialiseMulticastTrackerComms():
try:
sock = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
sock.setsockopt(socket.IPPROTO_IP, socket.IP_MULTICAST_TTL, 32)
sock.bind((ANY, MCAST_PORT))
host = socket.gethostbyname(socket.gethostname())
sock.setsockopt(socket.SOL_IP, socket.IP_ADD_MEMBERSHIP,socket.inet_aton(MCAST_GRP) + socket.inet_aton(host))
sock.setblocking(False)
except socket.error, (value,message):
print "Could not open socket: " + message
sys.exit(1)
else:
print 'Connected to multicast server'
return sock
有人能给我一些建议吗?
提前谢谢你们!
1 个回答
1
最简单的解决办法就是把你的尝试-异常-否则的代码块放在一个循环里。
可以像这样做:
def initSock():
message = ""
for i in range(MAX_TRIES):
try:
#...socket opening code
except socket.error, (value, message):
message = message
else:
print "Connected"
return sock
print "Could not open socket: " + message
sys.exit(1)