2010-01-27 2 views
1

이것은 멀티 캐스트 서버에 연결하기위한 코드입니다. 예외 처리를위한 최선의 방법입니다. 내가 뭘하고 싶은 예외가 발생했을 경우 연결을 다시 시도하는 것입니다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

감사 작업을 수행하는 방법에 대한 조언을 제공 할 수있는 간단한 방법은 포장하는 것 try-except-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) 
+0

감사 Epcylon 같은

뭔가, 나는 간단한 좋아 – mikip