Пример #1
0
def connection_handler(connection):
    clock = Clock(fps=30)
    while True:
        clock.tick()
        raw_data = connection.recv(1024).decode()

        if not raw_data:
            continue
        else:
            for json_data in raw_data.split('\x00'):
                if json_data:
                    # print('json_data', json_data)
                    dispatch(connection, json_data)
Пример #2
0
def main():
    connection = context.wrap_socket(socket.socket(family=socket.AF_INET, type=socket.SOCK_STREAM))
    connection.connect((HOST, PORT))

    thread = threading.Thread(target=connection_handler, args=(connection,))
    thread.daemon = True  # exit the thread when the main thread terminates
    thread.start()

    authentication(connection)

    clock = Clock(fps=10)
    while not client.logged_in:
        clock.tick()

    chat_logic(connection)
Пример #3
0
def client_listener():
    clock = Clock(fps=30)
    while True:
        clock.tick()
        try:
            connection, client_address = server.accept()
            connection.setblocking(False)
            setup(connection=connection, client_address=client_address)
        except BlockingIOError:
            pass

        for client in clients:
            try:
                handle(connection=client.connection)
                finish(connection=client.connection)
            except BlockingIOError:
                continue
Пример #4
0
def connection_handler(connection):
    clock = Clock(fps=30)
    while True:
        clock.tick()
        try:
            raw_data = connection.recv(1024).decode()

            if not raw_data:
                continue
            else:
                for json_data in raw_data.split('\n'):
                    if json_data:
                        # print('json_data', json_data)
                        dispatch(connection, json_data)

        except socket.error as e:
            if e.args[0] == errno.EWOULDBLOCK:
                continue
            raise