rfmonk

streamer.py

Jan 25th, 2014
100
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 1.06 KB | None | 0 0
  1. #!/usr/bin/env python
  2.  
  3.  
  4. import socket
  5. import sys
  6.  
  7. s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
  8.  
  9. HOST = sys.argv.pop() if len(sys.argv) == 3 else '127.0.0.1'
  10. PORT = 1060
  11.  
  12. if sys.argv[1:] == ['server']:
  13.     s.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1)
  14.     s.bind((HOST, PORT))
  15.     s.listen(1)
  16.     print 'Listening at', s.getsockname()
  17.     sc, sockname = s.accept()
  18.     print 'Accepted connection from', sockname
  19.     sc.shutdown(socket.SHUT_WR)
  20.     message = ''
  21.     while True:
  22.         more = sc.recv(8192)  # arbitrary value of 8k
  23.         if not more:  # socket has closed when recv() returns ''
  24.             break
  25.         message += more
  26.     print 'Done receiving the message; it says:'
  27.     print message
  28.     sc.close()
  29.     s.close()
  30.  
  31. elif sys.argv[1:] == ['client']:
  32.     s.connect((HOST, PORT))
  33.     s.shutdown(socket.SHUT_RD)
  34.     s.sendall('Beautiful is better than ugly.\n')
  35.     s.sendall('Explicit is better than implicit.\n')
  36.     s.sendall('Simple is better than complex.\n')
  37.     s.close()
  38.  
  39. else:
  40.     print >>sys.stderr, 'usage: streamer.py server|client [host]'
Add Comment
Please, Sign In to add comment