コード例 #1
0
def send_request(s, vm_path, guest_path):  # request is a dict type
    request = {'vm_path': vm_path, 'guest_path': guest_path}
    header_string = encode_header(request)
    send_all(s, header_string)
    # receive response
    len_string = receive_all(s, 4)
    if len_string:
        header_length, = struct.unpack('!I', len_string)
        json_string = receive_all(s, header_length)
        response = json.loads(json_string)
        if 'url' in response:
            url = response['url']
            return url
コード例 #2
0
ファイル: sync_client.py プロジェクト: stoveg/cadts_dcsa
def send_file(s, file_path):
    # send header and file content
    header_string = encode_file_header(file_path)
    file_len = os.path.getsize(file_path)
    send_all(s, header_string)
    with open(file_path, 'rb')as f:
        data = f.read(BUF_SIZE)
        while data:
            send_all(s, data)
            data = f.read(BUF_SIZE)

    # receive response
    len_string = receive_all(s, 4)
    if len_string:
        header_length, = struct.unpack('!I', len_string)
        json_string = receive_all(s, header_length)
        response = json.loads(json_string)
        if not response['success']:
            raise Exception(response.get('reason', None))

    return file_len
コード例 #3
0
def send_message(s, request):
    header_string = encode_header(request)
    send_all(s, header_string)