fileclient.py 952 B

1234567891011121314151617181920212223242526272829
  1. from socket import socket
  2. from json import loads
  3. from base64 import b64decode
  4. def main():
  5. client = socket()
  6. client.connect(('192.168.1.2', 5566))
  7. # 定义一个保存二进制数据的对象
  8. in_data = bytes()
  9. # 由于不知道服务器发送的数据有多大每次接收1024字节
  10. data = client.recv(1024)
  11. while data:
  12. # 将收到的数据拼接起来
  13. in_data += data
  14. data = client.recv(1024)
  15. # 将收到的二进制数据解码成JSON字符串并转换成字典
  16. # loads函数的作用就是将JSON字符串转成字典对象
  17. my_dict = loads(in_data.decode('utf-8'))
  18. filename = my_dict['filename']
  19. filedata = my_dict['filedata'].encode('utf-8')
  20. with open('/Users/Hao/' + filename, 'wb') as f:
  21. # 将base64格式的数据解码成二进制数据并写入文件
  22. f.write(b64decode(filedata))
  23. print('图片已保存.')
  24. if __name__ == '__main__':
  25. main()