2018-10-24python網(wǎng)絡(luò)編程作業(yè)

第一題:
寫一個(gè)客戶端和服務(wù)器的套接字:
客戶端連接服務(wù)器后展示界面:

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

  1. 需要圖片
  2. 需要文字
  3. 通知結(jié)束
    ==========================
    請(qǐng)選擇:

如果客戶端選1,服務(wù)器給客戶端發(fā)送一張圖片,客戶端保存圖片到本地
如果客戶端選2, 服務(wù)器輸入一段文字發(fā)送給客戶端, 客戶端將文字保存在一個(gè)message.txt文件中
如果客戶端選3,通知服務(wù)器關(guān)閉連接,并且客戶端結(jié)束

服務(wù)端代碼

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()       # 傳輸完成后要記得關(guān)閉連接,不然客戶端無法接收完成

        if message_re == '2':
            message = input("請(qǐng)輸入文字:")
            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('請(qǐng)輸入你的選擇:')
    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  # 將每次獲取到的數(shù)據(jù)疊加
            print('接收到數(shù)據(jù)')
            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('服務(wù)端:', re_data.decode('utf-8'))
        print('文本交易完成!')

二、第二題:
請(qǐng)求接口:
https://www.apiopen.top/satinApi?type=1&page=1 獲取網(wǎng)絡(luò)數(shù)據(jù)。
將內(nèi)容中所有的name和text對(duì)應(yīng)的值取出,并且保存到一個(gè)json文件中,保存的格式:
[{“name”:”張三”, “text”:”哈哈,讓我們一起自由的飛翔”}, {“name”:”喒你家玻璃”, “text”:”截圖暫停,截到的將會(huì)是對(duì)你愛情的預(yù)言三詞!”}]

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)

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • Spring Cloud為開發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見模式的工具(例如配置管理,服務(wù)發(fā)現(xiàn),斷路器,智...
    卡卡羅2017閱讀 136,533評(píng)論 19 139
  • 1.ios高性能編程 (1).內(nèi)層 最小的內(nèi)層平均值和峰值(2).耗電量 高效的算法和數(shù)據(jù)結(jié)構(gòu)(3).初始化時(shí)...
    歐辰_OSR閱讀 30,203評(píng)論 8 265
  • 點(diǎn)擊查看原文 Web SDK 開發(fā)手冊(cè) SDK 概述 網(wǎng)易云信 SDK 為 Web 應(yīng)用提供一個(gè)完善的 IM 系統(tǒng)...
    layjoy閱讀 14,299評(píng)論 0 15
  • 1、通過CocoaPods安裝項(xiàng)目名稱項(xiàng)目信息 AFNetworking網(wǎng)絡(luò)請(qǐng)求組件 FMDB本地?cái)?shù)據(jù)庫組件 SD...
    陽明AI閱讀 16,185評(píng)論 3 119
  • 響應(yīng)者鏈 響應(yīng)者鏈?zhǔn)且粋€(gè)響應(yīng)者的連接序列,事件或者動(dòng)作消息依次傳遞,它允許響應(yīng)者把事件處理的職責(zé)轉(zhuǎn)交給其他更高層次...
    Joker_King閱讀 524評(píng)論 0 3

友情鏈接更多精彩內(nèi)容