From cf101261cc3070fb24b27ebd607e93b60b02607b Mon Sep 17 00:00:00 2001 From: triatmoko Date: Sat, 16 Jul 2011 14:08:58 +0200 Subject: managing file. --- For Weekly Test/20-07-2011/classClient.py | 74 +++++++++++++++++++++++++++++++ 1 file changed, 74 insertions(+) create mode 100644 For Weekly Test/20-07-2011/classClient.py (limited to 'For Weekly Test/20-07-2011/classClient.py') diff --git a/For Weekly Test/20-07-2011/classClient.py b/For Weekly Test/20-07-2011/classClient.py new file mode 100644 index 0000000..625e48e --- /dev/null +++ b/For Weekly Test/20-07-2011/classClient.py @@ -0,0 +1,74 @@ +import socket +import sys +import os +import string + +class Connection: + def __init__(self, h, p): + self.host = h + self.port = p + self.s = None + self.connected = 0 + + def connect(self): + self.s = None + + alive = self.ping() + if alive == 0: + return 'The machine is not alive' + 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 'Could not open socket' + else: + self.connected = 1 + return 'Connected' + + def sendData(self, data): + if self.connected == 1: + self.s.send(data) + + def receiveData(self): + if self.connected == 1: + return self.s.recv(1024) + else: + return 'Not connected' + + def closeConnection(self): + if self.connected == 1: + self.s.close() + self.connected = 0 + return 'Closed' + + def ping(self): + ping_cmd = os.popen('ping '+ self.host + ' -c 1 -W 1').read() + pingAlive = int(string.find(ping_cmd, '1 received')) + if pingAlive != -1: + return 1 + else: + return 0 + +#MAIN PART +x = Connection('localhost',50008) +print x.connect() +x.sendData('hello server :)') +print x.receiveData() +x.sendData('I send you another message') +x.closeConnection() + -- cgit v1.2.3-55-g7522