Exemple #1
0
def listener(msgList: tkinter.Text, s: socket,
             clientEncryptor: PKCS1OAEP_Cipher):
    while True:
        if s.fileno() == -1:
            # socket closed
            break
        r, _, _ = select.select([s], [], [])
        for rs in r:
            if s == rs:
                try:
                    data = rs.recv(4096)
                except OSError:
                    # connection terminated (for some reason)
                    break
                if not data:
                    break
                msg = clientEncryptor.decrypt(data)
                msg = pickle.loads(msg)
                if msg[0]:
                    message = "<SERVER>: " + msg[3]
                else:
                    message = msg[2] + ": " + msg[3]
                msgList.tag_config(str(msg[1]), foreground=str(msg[1]))
                msgList.config(state=tkinter.NORMAL)
                msgList.insert(tkinter.END, message + '\n', str(msg[1]))
                msgList.config(state=tkinter.DISABLED)
Exemple #2
0
 def on_accept(self, sock: socket):
     print("getting data from {0}".format(sock.fileno()))
     conn, addr = sock.accept()
     print('accepted connection from {0}'.format(addr))
     conn.setblocking(False)
     # set it state for Any in coming message
     # register this new conn to read event
     self.selector.register(fileobj=conn, events=selectors.EVENT_READ)
Exemple #3
0
 def add_client(cls, client: socket, address: str):
     cls.ADDRESS_REGISTRY.update({client.fileno(): address})