Changeset 48:4df032ccfb2d in livinglogic.python.tipimaid

Show
Ignore:
Timestamp:
12/22/08 15:38:26 (10 years ago)
Author:
Nikolas Tautenhahn <nik@…>
Branch:
default
Message:

finding out when the connection is dead should work now

Files:
2 modified

Legend:

Unmodified
Added
Removed
  • liaalh_sender.py

    r47 r48  
    1313        self.backupport = backupport 
    1414        self.stream = stream 
     15        self.s = None 
    1516        self.create_socket() 
    1617        signal.signal(signal.SIGALRM, self.timeout) 
     
    4748 
    4849    def timeout(self, signum, frame): 
    49         print signum, frame 
     50        raise socket.timeout 
    5051 
    5152    def send(self): 
    52         for line in self.readlines(): 
    53             (l, t) = (len(line), 0) 
    54             while t < l: 
    55                 t += self.s.send(line[t:]) 
    56                 signal.alarm(3) 
    57                 print self.s.recv(1024) 
    58                 signal.alarm(0) 
    59         s.close() 
     53        if self.s: 
     54            for line in self.readlines(): 
     55                (l, t) = (len(line), 0) 
     56                while t < l: 
     57                    t += self.s.send(line[t:]) 
     58                    signal.alarm(5) # wait 5 seconds for server to notify us that it got the message 
     59                    try: 
     60                        self.s.recv(1024) 
     61                    except socket.timeout, exc: 
     62                        print "Could not send", line # Handle error 
     63                    signal.alarm(0) 
     64            s.close() 
    6065 
    6166def main(args=None): 
  • liaalh_server.py

    r45 r48  
    3535        else: 
    3636            # handle all other sockets 
    37             data = s.recv(size) 
     37            try: 
     38                data = s.recv(size) 
     39            except socket.error, exc: 
     40                s.close() 
     41                del inputs[s] 
     42                input.remove(s) # TODO: make sure that we don't create index errors here 
    3843            if data: 
     44                s.send("1") # notify the sender that we got something DISABLE THIS IF WE USE NETCAT AS SENDER! 
    3945                inputs[s] += data 
    4046                pos = inputs[s].rfind("\n")