Mark Slee | cde2b61 | 2006-09-03 21:13:07 +0000 | [diff] [blame] | 1 | from TTransport import * |
| 2 | import socket |
| 3 | |
| 4 | class TSocket(TTransportBase): |
| 5 | |
| 6 | """Socket implementation of TTransport base.""" |
| 7 | |
| 8 | handle = None |
| 9 | host = "localhost" |
| 10 | port = 9090 |
| 11 | |
| 12 | def __init__(self, host, port): |
| 13 | self.host = host |
| 14 | self.port = port |
| 15 | self.handle = None |
| 16 | |
| 17 | def isOpen(self): |
| 18 | return handle != None |
| 19 | |
| 20 | def open(self): |
| 21 | self.handle = socket.socket(socket.AF_INET, socket.SOCK_STREAM) |
| 22 | self.handle.connect((self.host, self.port)) |
| 23 | |
| 24 | def close(self): |
| 25 | self.handle.close() |
| 26 | self.handle = None |
| 27 | |
| 28 | def readAll(self, sz): |
| 29 | buff = '' |
| 30 | have = 0 |
| 31 | while (have < sz): |
| 32 | chunk = self.read(sz-have) |
| 33 | have += len(chunk) |
| 34 | buff += chunk |
| 35 | return buff |
| 36 | |
| 37 | def read(self, sz): |
| 38 | buff = self.handle.recv(sz) |
| 39 | return buff |
| 40 | |
| 41 | def write(self, buff): |
| 42 | self.handle.sendall(buff) |
| 43 | |
| 44 | def flush(self): |
| 45 | pass |