talk.py 1.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445
  1. #!/usr/bin/env python
  2. import sys
  3. import socket
  4. from os.path import abspath, dirname
  5. basepath = abspath(dirname(abspath(__file__)) + '/..')
  6. sys.path.insert(0, basepath)
  7. from websocket import websocket
  8. from connection import Connection
  9. from message import TextMessage
  10. from errors import SocketClosed
  11. if __name__ == '__main__':
  12. if len(sys.argv) < 3:
  13. print >> sys.stderr, 'Usage: python %s HOST PORT' % sys.argv[0]
  14. sys.exit(1)
  15. host = sys.argv[1]
  16. port = int(sys.argv[2])
  17. sock = websocket()
  18. sock.connect((host, port))
  19. sock.settimeout(1.0)
  20. conn = Connection(sock)
  21. try:
  22. try:
  23. while True:
  24. msg = TextMessage(raw_input())
  25. print 'send:', msg
  26. conn.send(msg)
  27. try:
  28. print 'recv:', conn.recv()
  29. except socket.timeout:
  30. print 'no response'
  31. except EOFError:
  32. conn.close()
  33. except SocketClosed as e:
  34. if e.initialized:
  35. print 'closed connection'
  36. else:
  37. print 'other side closed connection'