day18-作业(网络编程)

day18-网络编程.PNG

Server.py文件


import os
import socket

server = socket.socket()
server.bind(('10.7.181.132', 8890))
server.listen(200)
print('开始监听......')
connect, address = server.accept()
while True:
    send_message = 'a.请求文字信息\nb.请求图片信息'
    connect.send(send_message.encode())
    answer1 = connect.recv(1024).decode(encoding='utf-8')
    if answer1 == 'a':
        print('您可以开始和客户端进行沟通了')
        while True:
            chat_client = connect.recv(1024).decode(encoding='utf-8')
            print(chat_client)
            message = input('服务端:').encode()
            connect.send(message)
            print('\r\n')
            if chat_client == 'bye' or chat_client == '再见':
                break
    elif answer1 == 'b':
        print('为客户提供图片信息')
        list1 = os.listdir('files')
        choices2 = str(list1)
        connect.send(choices2.encode())
        answer2 = connect.recv(2048).decode(encoding='utf-8')
        with open('files/' + answer2, 'rb') as f:
            connect.send(f.read())
    else:
        print('选项不正确,关闭...')
        connect.close()
        break

files文件夹供Server使用

files.PNG

Client.py文件

import socket
client = socket.socket()
client.connect(('10.7.181.132', 8890))
choices1 = client.recv(1024)
while True:
    print(choices1.decode(encoding='utf-8'))
    answer1 = input('请选择:')
    client.send(answer1.encode())

    if answer1 == 'a':
        print('现在您可以开始和服务器进行沟通了')
        while True:
            message = input('客户端:')
            client.send(message.encode())
            print('发送成功...')
            chat_server = client.recv(1024).decode(encoding='utf-8')
            print('服务端:', chat_server)
            print('\r\n')
            if message == 'bye' or message == '再见':
                break
    elif answer1 == 'b':
        list1 = eval(client.recv(2048).decode(encoding='utf-8'))
        while True:
            print(list1)
            answer2 = input('请输入你想要的图片的名字:')
            if answer2 in list1:
                client.send(answer2.encode())
                load_path = 'files2/' + answer2
                while True:
                    recv_photo = client.recv(1024)
                    # print(len(recv_photo))
                    with open(load_path, 'ab') as f:
                        f.write(recv_photo)
                    if len(recv_photo) < 1024:
                        print('图片下载完成')
                        break
                break
            else:
                print('输入错误,请重新选择')
    else:
        print('没有该选项,退出程序')
        client.close()
        break

files2文件夹供Client使用

files2.PNG

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 一、Python简介和环境搭建以及pip的安装 4课时实验课主要内容 【Python简介】: Python 是一个...
    _小老虎_阅读 11,146评论 0 10
  • 1、第八章 Samba服务器2、第八章 NFS服务器3、第十章 Linux下DNS服务器配站点,域名解析概念命令:...
    哈熝少主阅读 9,159评论 0 10
  • Swift1> Swift和OC的区别1.1> Swift没有地址/指针的概念1.2> 泛型1.3> 类型严谨 对...
    cosWriter阅读 13,805评论 1 32
  • 网络编程 一.楔子 你现在已经学会了写python代码,假如你写了两个python文件a.py和b.py,分别去运...
    go以恒阅读 6,426评论 0 6
  • 生活又回归到了一片平静,我讨厌平静,这让我找不到生活的美好。 电影不好看,手机也不好玩,平静使我焦虑。 我想过山车...
    陈迷呀阅读 3,093评论 3 6