用Python连接到多播服务器

2024-10-01 11:35:06 发布

您现在位置: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

有人能给我一些建议吗

提前谢谢


Tags: 代码ip服务器hostmessagedef方式socket
1条回答
网友
1楼 · 发布于 2024-10-01 11:35:06

最简单的解决方案是将try除了else块包装在一个循环中。在

像这样的东西

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)

相关问题 更多 >