<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>