CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutSign UpSign In
jackfrued

CoCalc provides the best real-time collaborative environment for Jupyter Notebooks, LaTeX documents, and SageMath, scalable from individual users to large groups and classes!

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