美文网首页python从入门到放弃
2018-10-24python网络编程作业

2018-10-24python网络编程作业

作者: 楠木cral | 来源:发表于2018-10-24 21:18 被阅读0次

    第一题:
    写一个客户端和服务器的套接字:
    客户端连接服务器后展示界面:

    ===========================

    1. 需要图片
    2. 需要文字
    3. 通知结束
      ==========================
      请选择:

    如果客户端选1,服务器给客户端发送一张图片,客户端保存图片到本地
    如果客户端选2, 服务器输入一段文字发送给客户端, 客户端将文字保存在一个message.txt文件中
    如果客户端选3,通知服务器关闭连接,并且客户端结束

    服务端代码

    import socket
    
    sever = socket.socket()
    
    sever.bind(('10.7.156.142', 8090))
    
    sever.listen(100)
    
    while True:
        conversaton, addr = sever.accept()
    
        while True:
            message_re = conversaton.recv(1024).decode('utf-8')
            if message_re == '1':
                with open('./luffy.png', 'br') as f:
                    content = f.read()
                    conversaton.send(content)
                    conversaton.close()       # 传输完成后要记得关闭连接,不然客户端无法接收完成
    
            if message_re == '2':
                message = input("请输入文字:")
                conversaton.send(message.encode('utf-8'))
    
            if message_re == '3':
                conversaton.close()
    

    客户端代码:

    import socket
    
    client = socket.socket()
    
    client.connect(('10.7.156.142', 8090))
    
    while True:
        print('****************************************')
        print('**********1.图片交易********************')
        print('**********2.文字交易********************')
        print('**********3.退出交易********************')
        print('****************************************')
    
        message_re = input('请输入你的选择:')
        client.send(message_re.encode('utf-8'))
        if message_re == '3':
            break
    
        re_data = client.recv(1024)
    
        if message_re == '1':
            data = bytes()
            while re_data:
                # print(message_re)
                data += re_data  # 将每次获取到的数据叠加
                print('接收到数据')
                re_data = client.recv(1024)
    
            with open('./new.jpg', 'bw') as f:
                f.write(data)
            print('图片接收完成')
    
        if message_re == '2':
            with open('./message.txt', 'bw') as f:
                f.write(re_data)
            print('服务端:', re_data.decode('utf-8'))
            print('文本交易完成!')
    
    

    二、第二题:
    请求接口:
    https://www.apiopen.top/satinApi?type=1&page=1 获取网络数据。
    将内容中所有的name和text对应的值取出,并且保存到一个json文件中,保存的格式:
    [{“name”:”张三”, “text”:”哈哈,让我们一起自由的飞翔”}, {“name”:”喒你家玻璃”, “text”:”截图暂停,截到的将会是对你爱情的预言三词!”}]

    import requests
    import json
    
    url = 'https://www.apiopen.top/satinApi'
    response = requests.get(url, {'type': 1, 'page': 1})
    
    with open('./data_json_new.json') as f1:
        data_json_new = json.load(f1)
    
    data_json = response.json()
    for index in range(len(data_json['data'])):
       # print(data_json['data'][index]['name'], data_json['data'][index]['text'])
        data_json_new.append({'name': data_json['data'][index]['name'], 'text': data_json['data'][index]['text']})
    
    with open('./data_json_new.json', 'w', encoding='utf-8') as f2:
        json.dump(data_json_new, f2)
    
    print(data_json_new)
    
    

    相关文章

      网友评论

        本文标题:2018-10-24python网络编程作业

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