Day18 作业

作者: 风月辞寒 | 来源:发表于2019-08-14 19:25 被阅读0次

    服务器:

    """______lxh______"""
    
    from socket import *
    import os
    
    server = socket()       # 创建套接字对象
    server.bind(('10.7.181.115', 6628))     # 绑定ip和端口
    server.listen(628)
    
    while True:   # 让程序一直运行
        connect, address = server.accept()      # 接收请求建立连接
        print(connect, address)     # 服务端打印请求信息
        # 循环操作
        while True:
            re_ask = str(connect.recv(1024), encoding='utf-8')  # 获取请求
            if re_ask == 'a':
                with open('text/txt1.txt', 'rb') as f:
                    content = f.read()
                    connect.send(content)   # 发送文本信息
            elif re_ask == 'b':
                dirs = os.listdir('files')  # 获取文件目录列表
                str_dirs = str(dirs) + '\n请输入你想要的图片的名字:'
                connect.send(str_dirs.encode())     # 发送文件目录以及提示输入
    
                re_name = str(connect.recv(1024), encoding='utf-8')  # 接收客户端输入信息
                path = 'files/' + re_name       # 合成路径
                if os.path.exists(path):        # 对存在的文件进行操作
                    connect.send('图片存在!'.encode())
                    with open(path, 'rb') as f:
                        connect.send(f.read())
                else:
                    connect.send('图片不存在!'.encode())
    
    

    客户端:

    """______lxh______"""
    
    from socket import *
    
    client = socket()       # 创建套接字对象
    
    client.connect(('10.7.181.115', 6628))  # 连接ip和端口
    while True:
        print('a.请求文字信息\nb.请求图片信息')
    
        ask = input('输入:')
        client.send(ask.encode())       # 返回选项请求
        if ask == 'a':
            print(client.recv(1024).decode())   # 打印文本信息
        elif ask == 'b':
            print(client.recv(1024).decode())
            im_name = input('输入图片名字:')
            client.send(im_name.encode())
    
            re_ask = client.recv(1024).decode()     # 接收文件是否存在
            print(re_ask)
            if re_ask != '图片不存在!':
                while True:
                    re_img = client.recv(1024)
                    with open('im_client/' + im_name, 'ab') as f:
                        f.write(re_img)
                    if len(re_img) < 1024:
                        print('接收成功!')
                        break
    
    

    相关文章

      网友评论

        本文标题:Day18 作业

        本文链接:https://www.haomeiwen.com/subject/jwinjctx.html