+class LATClientException(Exception): pass
+
+def read_for_a_bit(rfh):
+ message = ''
+ while 1:
+ r = select([rfh], [], [], 5.0)[0]
+ if r:
+ message = message + rfh.read(1)
+ else:
+ break
+ print "Received message: ", repr(message)
+ return message
+
+def write_expecting_echo(rfh, wfh, message):
+ print "Writing message:", repr(message)
+ while len(message) > 0:
+ wfh.write(message[0])
+ wfh.flush()
+ echo = rfh.read(1)
+ if echo != message[0]:
+ print "Gah, expected echo when writing", message[0]
+ message = message[1:]
+ print " --> Sent and echoed."
+