Exemple #1
0
def echo_client(address):
    sock = socket(AF_INET, SOCK_STREAM)
    sock.connect(address)
    while True:
        data = input("message > ")
        msg = data.encode('utf-8')
        msgpass.send_message(sock, msg)
        response = msgpass.recv_message(sock)
        print('response:', response)
Exemple #2
0
def handle_client(client):
    while True:
        msg = msgpass.recv_message(client)
        method, args = decode_request(msg)
        print('request:', method, args)

        try:
            with client_lock:
                # guaranteed that only one thread at a time is in here
                if method == 'get':
                    result = get(*args)
                elif method == 'set':
                    set(*args)
                    result = "ok"
                elif method == "delete":
                    delete(*args)
                else:
                    raise RuntimeError(f"Bad method {method}")
        except:
            result = ("error", err)

        msgpass.send_message(client,
            encode_result(result)
            )
Exemple #3
0
 def set(self, key, value):
     msgpass.send_message(self.sock, encode_request('set', key, value))
     resp = msgpass.recv_message(self.sock)
     return decode_result(resp)
Exemple #4
0
 def delete(self, key):
     msgpass.send_message(self.sock, encode_request('delete', key))
     resp = msgpass.recv_message(self.sock)
     return decode_result(resp)
Exemple #5
0
 def do_request(*args):
     msgpass.send_message(self.sock, encode_request(method, *args))
     resp = msgpass.recv_message(self.sock)
     return decode_result(resp)