From b99193ba68f947802245a288940e54904ecbee61 Mon Sep 17 00:00:00 2001 From: Triatmoko Date: Fri, 18 Nov 2011 13:23:49 +0100 Subject: final version --- Under-Testing/Server-Code-New/ClientClass.py | 123 --------------------------- 1 file changed, 123 deletions(-) delete mode 100644 Under-Testing/Server-Code-New/ClientClass.py (limited to 'Under-Testing/Server-Code-New/ClientClass.py') diff --git a/Under-Testing/Server-Code-New/ClientClass.py b/Under-Testing/Server-Code-New/ClientClass.py deleted file mode 100644 index 46c3b00..0000000 --- a/Under-Testing/Server-Code-New/ClientClass.py +++ /dev/null @@ -1,123 +0,0 @@ -import socket -import sys -import os -import string -import signal - -class TimeoutException(Exception): - pass - -class Connection: - def __init__(self, h, p): - self.host = h - self.port = p - self.s = None - self.connected = 0 - - self.debugMode = 0 - - def connect(self): - self.s = None - - for res in socket.getaddrinfo(self.host, self.port, socket.AF_UNSPEC, socket.SOCK_STREAM): - af, socktype, proto, canonname, sa = res - try: - self.s = socket.socket(af, socktype, proto) - self.s.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1) #this resolves the bug with live packets - except socket.error, msg: - self.s = None - self.connected = 0 - continue - try: - self.s.connect(sa) - except socket.error, msg: - self.s.close() - self.connected = 0 - self.s = None - continue - break - if self.s is None: - self.connected = 0 - return 0 #couldn't connect to the server - else: - self.connected = 1 - return 1 #successfully connected to the server - - def sendData(self, data): - if self.connected == 1: - try: - self.s.send(data) - return 1 - except Exception, e: - if self.debugMode == 1: - import traceback - print traceback.format_exc() - print e - self.connected = 0 - return 2 - - else: - return 0 - - def receiveData(self, timeout): - if self.connected == 1: - - def timeout_handler(signum, frame): - raise TimeoutException() - - old_handler = signal.signal(signal.SIGALRM, timeout_handler) - signal.alarm(timeout) #start the timeout alarm, for timeout seconds - try: - data = self.s.recv(1024) - - #stop the timeout function - signal.signal(signal.SIGALRM, old_handler) - signal.alarm(0) - - return data - - - except TimeoutException: - #timeout happened - signal.signal(signal.SIGALRM, old_handler) - signal.alarm(0) - return 'TIMEOUT' - - except Exception, e: - - signal.signal(signal.SIGALRM, old_handler) - signal.alarm(0) - - error = str(e) - if self.debugMode == 1: - import traceback - print traceback.format_exc() - print e - self.connected = 0 - if error[0:11] == '[Errno 104]': - return 3 #the other side reset the connection,[Errno 104] Connection reset by peer - - return 2 - else: - return 0 - - def closeConnection(self): - if self.connected == 1: - try: - self.connected = 0 - SHUT_RDWR = 2 - self.s.shutdown(SHUT_RDWR) - self.s.close() - return 1 - except Exception, e: - self.connected = 0 - error = str(e) - if self.debugMode == 1: - import traceback - print traceback.format_exc() - print e - if error[0:11] == '[Errno 107]': - return 3 #the other side closed the connection before us, [Errno 107] Transport endpoint is not connected - return 2 - else: - return 0 -- cgit v1.2.3-55-g7522