<div dir="ltr"><div><div style>For the life of me I cant figure out why this exception is being thrown. </div><div style>How could I use pdb to debug this? </div><div><br></div><div>$ python udp_local2.py server</div><div>

  File "udp_local2.py", line 36</div><div>    except:</div><div>         ^</div><div>SyntaxError: invalid syntax</div></div><div><br></div><div><br></div><div>#!/usr/bin/env python</div><div><br></div><div>import random, socket, sys</div>

<div>s = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)</div><div><br></div><div>MAX = 65535</div><div>PORT = 1060</div><div><br></div><div>if 2 <= len(sys.argv) <= 3 and sys.argv[1] == 'server':</div><div>

    interface = sys.argv[2] if len(sys.argv) > 2 else ''</div><div>    s.bind((interface, PORT))</div><div>    print 'Listening at', s.getsockname()</div><div>    while True:</div><div>        data, address = s.recvfrom(MAX)</div>

<div>        if random.randint(0, 1):</div><div>            print 'The client at', address, 'says:', repr(data)</div><div>            s.sendto('Your data was %d bytes' % len(data), address)</div><div>

        else:</div><div>            print 'Pretending to drop packet from', address</div><div><br></div><div>elif len(sys.argv) == 3 and sys.argv[1] == 'client':</div><div>    hostname = sys.argv[2]</div>
<div>
    s.connect((hostname, PORT))</div><div>    print 'Client socket name is', s.getsockname()</div><div>    delay = 0.1</div><div>    while True:</div><div>        s.send('This is another message')</div><div>

        print 'Waiting up to', delay, 'seconds for a reply'</div><div>        s.settimeout(delay)</div><div>        try:</div><div>            data = s.recv(MAX)</div><div>        except socket.timeout:</div>

<div>            delay *= 2</div><div>            if delay > 2.0:</div><div>                raise RuntimeError('I think the server is down')</div><div>            except:</div><div>                raise</div><div>

            else:</div><div>                break</div><div>        print 'The server says', repr(data)</div><div>    else:</div><div>        print >> sys.stderr, 'usage: %d server [<interfae>]' % sys.argv[0]</div>

<div>        print >> sys.stderr, '   or: %d client <host>' % sys.argv[0]</div><div>        sys.exit(2)</div><div><br></div><div><br></div></div>