作业
作业:
编写cs架构的软件,实现客户端可以下载服务端的文件,如图片、视频、文本等
服务端:
import socketserver
import pickle
import os
class MyRequestHandle(socketserver.BaseRequestHandler):
def handle(self):
print(self.client_address)
while True:
msg = self.request.recv(1024)
if len(msg) == 0:
break
try:
msg = msg.decode('utf-8')
dir_path = os.path.dirname(__file__)
file_path = os.path.join(dir_path,msg)
with open(file_path, mode='rb') as f:
res = f.read()
res1 = pickle.dumps(res)
except Exception:
break
self.request.send(res)
self.request.close()
# s = socketserver.ThreadingTCPServer(('127.0.0.1', 8085), MyRequestHandle)
# s.serve_forever()
s = socketserver.ThreadingTCPServer(('106.14.62.82', 8086), MyRequestHandle)
s.serve_forever()
客户端:
from socket import *
import os
import pickle
client = socket(AF_INET, SOCK_STREAM)
# client.connect(('127.0.0.1',8080))
client.connect(('106.14.62.82', 8022))
while True:
msg = input('请输入下载的文件名: ').strip()
if len(msg) == 0:
continue
client.send(msg.encode('utf-8'))
res = client.recv(1024)
dir_path = r'C:\Users\Administrator\Desktop'
file_path = os.path.join(dir_path, msg)
with open(file_path, mode='wb') as f:
f.write(res)
```

浙公网安备 33010602011771号