作业_Day16

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

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

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

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

服务器

import socket

server = socket.socket()
server.bind(('10.7.156.65',7878))
server.listen(512)
print('开始服务')

while True:
    conversation,addr = server.accept()
    print(addr)
    while True:

        message_re = conversation.recv(1024).decode('utf-8')
        print('客户端(%s):%s' % (addr[0][-2:],message_re))
        if message_re == '1':
            with open('./files/aaa.jpg','rb') as f:
                content = f.read()
                conversation.send(content)
                conversation.close()
        elif message_re == '2':
            message = '生命之所以有趣,皆因我们虽失去很多东西,但亦得回很多,有欢欣雀跃的时刻,亦有神伤魂断的日子。这世上还有什么比生命本身更动人的事,而生命之所以有意义,就是动人的历程与经验。成功失败并不重要,其中奋斗的过程才是最迷人之处。'
            message_0b = bytes(message,encoding='utf-8')
            conversation.send(message_0b)
        elif message_re == '3':
            print('关闭连接')
            break
        else:
            print('输入错误请重新输入')
            continue

客户端



import function
import socket

client = socket.socket()

client.connect(('10.7.156.65',7878))

while True:
    function.show_cover()
    message = input('请选择输入1-3')
    client.send(message.encode('utf-8'))

    re_data = client.recv(1024)
    if message == '1':
        data = bytes()
        while re_data:
            data += re_data
            re_data = client.recv(1024)
        with open('./files/tu.jpg','wb') as f:
            f.write(data)
        print('接收完毕')
    elif message == '2':
        with open('./files/message.txt','w') as f:
            f.write(re_data.decode('utf-8'))
    else:
        break

function

def show_cover():
    print('===========================')
    print('1.需要图片')
    print('2.需要文字')
    print('3.通知结束')
    print('===========================')

第二题:
请求接口:[图片上传失败...(image-ea3a94-1540375294691)]

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?type=1&page=1'
response = requests.get(url)
data_text = response.text
text = json.loads(data_text)
print(text)
res = []
for x in text['data']:
    res.append({'name':x['name'],'text':x['text']})
print(res)
with open('./files/data.json','w') as f:
    json.dump(res,f)

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

推荐阅读更多精彩内容

  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 134,981评论 19 139
  • 1.ios高性能编程 (1).内层 最小的内层平均值和峰值(2).耗电量 高效的算法和数据结构(3).初始化时...
    欧辰_OSR阅读 29,643评论 8 265
  • 点击查看原文 Web SDK 开发手册 SDK 概述 网易云信 SDK 为 Web 应用提供一个完善的 IM 系统...
    layjoy阅读 13,946评论 0 15
  • 1、通过CocoaPods安装项目名称项目信息 AFNetworking网络请求组件 FMDB本地数据库组件 SD...
    阳明AGI阅读 16,018评论 3 119
  • 周末,阳光,插一束鲜花泡一杯柠檬茶,再次翻开又睡了三天的策略思维。 坦白讲,已经不记得上次用脑看书是啥时候的事儿了...
    大梅子1990阅读 495评论 1 1