美文网首页
day19-网络通信-作业

day19-网络通信-作业

作者: _桑心人 | 来源:发表于2018-10-24 21:09 被阅读0次

1.第一题

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

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


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

服务器代码

import socket
# 创建服务器套接字对象
server = socket.socket()
# 绑定ip和端口号
server.bind(('10.7.156.96', 8082))
# 监听请求
server.listen()


while True:
    # 接受客服端请求(电话响了,接电话)
    """
    有客服端在请求这个服务器的时候才会往下执行并返回会话和客服端的地址
    """
    conversation, addr = server.accept()
    data = conversation.recv(1024).decode('utf-8')
    if data == '1':
        # 下载图片
        with open('new1.jpg', 'rb') as fp:
            content = fp.read()
            conversation.send(content)
            # 关闭连接
            conversation.close()

    elif data == '2':
        message = input('输入一段文字:')
        # message = bytes(message, encoding='utf-8')
        message_data = message.encode('utf-8')
        conversation.send(message_data)
    else:
        conversation.close()

客服端代码

while True:
   # 创建客服端套接字对象
    clint = socket.socket()
    # 连接服务器
    clint.connect(('10.7.156.96', 8082))
    print('=============')
    print('1.  需要图片')
    print('2.  需要文字')
    print('3.  通知结束')
    print('=============')
    n = input('请选择:')
    if n == '1':
        clint.send(n.encode('utf-8'))
        data = bytes()  # 创建一个空的二进制数据
        message_re = clint.recv(1024)
        while message_re:
            # 接受服务器返回的数据
            print('接收数据')
            data += message_re
            message_re = clint.recv(1024)
            print(message_re)
        with open('new2.jpg', 'wb') as fp:
            fp.write(data)
        print('接收完成')
        clint.close()
    elif n == '2':
        clint.send(n.encode('utf-8'))
        # 接受服务器返回的数据
        re_data = clint.recv(1024)
        print(re_data.decode('utf-8'))
        with open('text.txt', 'wb') as fp:
            fp.write(re_data)
        print('存储成功')
        clint.close()
    else:
        break

2.第二题

第二题:
请求接口: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_json = response.json()
print(data_json)
js = []
name = []
text = []
for key, value in data_json.items():
    print(key)
    if key == 'name' or key == 'text':
        js.append({key: value})
    elif key == 'data':
        for value1 in value:
            for key1, value2 in value1.items():
                if key1 == 'name' or key1 == 'text':
                    js.append({key1: value2})
print(js)

with open('json.json', 'w', encoding='utf-8') as fp:
    json.dump(js, fp)
print('写入文件成功!')

运行结果可自行测试

相关文章

  • day19-网络通信-作业

    1.第一题 服务器代码 客服端代码 2.第二题 代码如下 运行结果可自行测试

  • day19-网络通信

    一、网络通信服务器 1.创建服务器对应的套接字对象 socket定义:socket又叫套接字,实现网络通信的两端就...

  • day19-网络通信

    一、socket服务器 socket又叫套接字,实现网络通信的两端就是套接字。分为服务器对应的套接字和客户端对应的...

  • Day19-网络通信

    一、socket socket又叫套接字,实现网络通信的两端就是套接字。分为服务器对应的套接字和客户端对应的套接字...

  • day19-网络通信

    1.socket服务器 代码示例 2.socket客户端 代码示例 3.socket服务器升级 代码示例 4.接受...

  • Day19-作业

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

  • day19-作业

    一.获取字符串中:a.所有的正整数b.所有的负整数c.所有的浮点数d.所有的非负浮点数 二、不定项选择题 能够完全...

  • 2018-10-24 day19-网络通信

    1.socket 服务器 socket又叫套接字,实现网络通信的两端就是套接字。分为服务器对应的套接字和客户端对应...

  • 2018-10-24 day19-作业

    服务器: 客户端:

  • 彻底掌握网络通信(一)Http协议基础知识

    网络通信系列文章序 彻底掌握网络通信(一)Http协议基础知识 彻底掌握网络通信(二)Apache的HttpCli...

网友评论

      本文标题:day19-网络通信-作业

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