persistent connection

This commit is contained in:
felipecode 2017-11-22 15:56:41 +01:00
parent 033854d80f
commit 2f4edefa59
1 changed files with 15 additions and 7 deletions

View File

@ -9,7 +9,7 @@
import logging
import socket
import struct
import time
class TCPConnectionError(Exception):
pass
@ -24,12 +24,20 @@ class TCPClient(object):
self._logprefix = '(%s:%s) ' % (self._host, self._port)
def connect(self):
try:
self._socket = socket.create_connection(address=(self._host, self._port), timeout=self._timeout)
self._socket.settimeout(self._timeout)
logging.debug(self._logprefix + 'connected')
except Exception as exception:
self._reraise_exception_as_tcp_error('failed to connect', exception)
for attempt in range(10):
try:
self._socket = socket.create_connection(address=(self._host, self._port), timeout=self._timeout)
self._socket.settimeout(self._timeout)
logging.debug(self._logprefix + 'connected')
except Exception as exception:
logging.debug('attempt number %d',(attempt))
time.sleep(1)
continue
else:
return
self._reraise_exception_as_tcp_error('failed to connect', exception)
def disconnect(self):
if self._socket is not None: