Advertisement
Guest User

Untitled

a guest
Nov 19th, 2018
78
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.20 KB | None | 0 0
  1. from socket import socket, AF_INET, SOCK_DGRAM
  2. import sys, random
  3.  
  4. s = socket(AF_INET, SOCK_DGRAM)
  5.  
  6. MAX = 65535
  7. PORT = 1060
  8.  
  9. if 2 <= len(sys.argv) <= 3 and sys.argv[1:] == ['server']:
  10. host = sys.argv[2] if len(sys.argv) > 2 else ' '
  11. s.bind((host,PORT))
  12. print 'Listening at', s.getsockname()
  13. while 1:
  14. message, adress = s.recvfrom(MAX)
  15. if random.randint(0, 1):
  16. print 'The client at', adress, says, repr(message)
  17. s.sendto('Your data was %d bytes' % len(message), adress)
  18. else:
  19. print 'Pretending to drop package from' adress
  20.  
  21. elif len(sys.argv) == 3 and sys.argv[1:] == ['client']:
  22. host = sys.argv[2]
  23. s.connect((host,PORT)
  24. print 'Client socket name is ', s.getsockname()
  25. delay = 0.1
  26. while 1:
  27. s.send( 'This is another message' )
  28. print 'Waiting up to', delay, 'seconds for a reply'
  29. s.settimeout(delay)
  30. try:
  31. data = s.recv(MAX)
  32. except socket.timeout:
  33. delay *= 2
  34. if delay > 2.0:
  35. raise RuntimeError('I think the server is down')
  36. except:
  37. raise
  38. else:
  39. break
  40. print 'The server says' repr(data)
  41.  
  42. else:
  43. print >>sys.stderr, 'usage: udp_remote.py server [ <interface> ]'
  44. print >>sys.stderr, ' or: udp_remote.py client <host>'
  45. sys.exit(2)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement