Subversion Repositories HomeAutomation

Rev

Rev 742 | Only display areas with differences | Regard whitespace | Details | Blame | Last modification | View Log | SVN | RSS feed

Rev 742 Rev 800
1
import socket
1
import socket
2
 
2
 
3
class TCPClient():
3
class TCPClient():
4
   
4
   
5
    host = 'localhost'
5
    host = 'localhost'
6
    port = 50007
6
    port = 50007
7
    sock = None
7
    sock = None
8
   
8
   
9
    def __init__(self, host, port):
9
    def __init__(self, host, port):
10
        self.host = host
10
        self.host = host
11
        self.port = port
11
        self.port = port
12
   
12
   
13
    def connect(self, timeout = None):
13
    def connect(self, timeout = None):
14
        try:
14
        try:
15
            self.sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
15
            self.sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
16
            if timeout is not None:
16
            if timeout is not None:
17
                self.sock.settimeout(timeout)
17
                self.sock.settimeout(timeout)
18
            self.sock.connect((self.host, self.port))
18
            self.sock.connect((self.host, self.port))
19
            self.sock.settimeout(0.5)
19
            self.sock.settimeout(0.5)
20
            return True
20
            return True
21
        except Exception, e:
21
        except Exception, e:
22
            print 'TCP Client connect failed:', e
22
            print 'TCP Client connect failed:', e
23
            return False
23
            return False
24
       
24
       
25
    def disconnect(self):
25
    def disconnect(self):
26
        if self.sock is not None:
26
        if self.sock is not None:
27
            self.sock.close()
27
            self.sock.close()
28
 
28
 
29
    def read(self):
29
    def read(self):
30
        try:
30
        try:
31
            data = self.sock.recv(1024)
31
            data = self.sock.recv(1024)
32
            return repr(data)
32
            return repr(data)
33
        except socket.timeout:
33
        except socket.timeout:
34
            pass
34
            pass
35
        return None
35
        return None
36
       
36
       
37
    def write(self, data):
37
    def write(self, data):
38
        self.sock.send(data)
38
        self.sock.send(data)
39
 
39