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

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

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

  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网络编程作业)