作业

作业:
编写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)
        ```
posted @ 2020-04-21 22:50  小子,你摊上事了  阅读(51)  评论(0)    收藏  举报