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)

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 136,428评论 19 139
  • 1.ios高性能编程 (1).内层 最小的内层平均值和峰值(2).耗电量 高效的算法和数据结构(3).初始化时...
    欧辰_OSR阅读 30,143评论 8 265
  • 点击查看原文 Web SDK 开发手册 SDK 概述 网易云信 SDK 为 Web 应用提供一个完善的 IM 系统...
    layjoy阅读 14,254评论 0 15
  • 1、通过CocoaPods安装项目名称项目信息 AFNetworking网络请求组件 FMDB本地数据库组件 SD...
    阳明AI阅读 16,143评论 3 119
  • 响应者链 响应者链是一个响应者的连接序列,事件或者动作消息依次传递,它允许响应者把事件处理的职责转交给其他更高层次...
    Joker_King阅读 524评论 0 3

友情链接更多精彩内容