def receive_msg(self): if self.connected: # Check for messages try: read, write, error = select.select((self.server,), (), (), 0) except ValueError: pass else: for s in read: message = prot.get(s) if message == 0: # Connection is closed self.toggle_connection() elif message == '\x00\x00\x00\x00': # End of message self.parse_msg(self.messbuf) self.messbuf = [] else: # Just a normal string self.messbuf.append(message) self._root().after(1, self.receive_msg)
def main(): server = socket.socket() server.bind(('', PORT)) server.setblocking(0) server.listen(10) while True: # Check for messages read, write, error = select.select(connections, (), (), 0) for s in read: message = prot.get(s) if message == 0: # Connection is closed disconnect(s) elif message == '\x00\x00\x00\x00': # End of message parse(messbufs[s], s) messbufs[s] = [] else: # Just a normal string messbufs[s].append(message) # Check for new incoming connections read, write, error = select.select((server,), (), (), 0) for s in read: connect(s) return
def get( remotefile ): """Reads remotefile from current directory and returns it as byte array. Currently only binary mode is supported. """ return protocol.get( remotefile )