Python basic threaded server
Reviewed By: ccheever-pillar
git-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@664812 13f79535-47bb-0310-9956-ffa450edef68
diff --git a/lib/py/src/transport/TSocket.py b/lib/py/src/transport/TSocket.py
index 2c7dd3e..dd4a166 100644
--- a/lib/py/src/transport/TSocket.py
+++ b/lib/py/src/transport/TSocket.py
@@ -10,7 +10,7 @@
self.port = port
self.handle = None
- def set_handle(self, h):
+ def setHandle(self, h):
self.handle = h
def isOpen(self):
@@ -37,7 +37,7 @@
def read(self, sz):
buff = self.handle.recv(sz)
if len(buff) == 0:
- raise Exception('TSocket read 0 bytes')
+ raise TTransportException('TSocket read 0 bytes')
return buff
def write(self, buff):
@@ -46,7 +46,7 @@
while sent < have:
plus = self.handle.send(buff)
if plus == 0:
- raise Exception('sent 0 bytes')
+ raise TTransportException('sent 0 bytes')
sent += plus
buff = buff[plus:]
@@ -63,13 +63,16 @@
def listen(self):
self.handle = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
+ self.handle.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1)
+ if hasattr(self.handle, 'set_timeout'):
+ self.handle.set_timeout(None)
self.handle.bind(('', self.port))
self.handle.listen(128)
def accept(self):
(client, addr) = self.handle.accept()
result = TSocket()
- result.set_handle(client)
+ result.setHandle(client)
return result
def close(self):