day17-作业

  • 写一个两个人的聊天系统,可以实现双向聊天功能。
    如果发送的是普通的文字就直接打印,如果发送的文字是’拜拜’就关闭连接,
    如果是一个网络地址就获取数据(保存到文本文件中),如果是图片地址就下载图片到本地
server代码

import re
import socket
from requests import request
#1.创建服务器
server = socket.socket()

# 绑定地址
server.bind(('10.7.181.86',8060))

# 3.监听
server.listen(50)

# 保持服务器不关闭
while True:
    conversation, addr = server.accept()

    # 让客户端和服务器一直处于连接状态
    while True:
        # 发送消息
        message = input('>>>')
        conversation.send(message.encode())
        if message == '拜拜':
            break

        if re.fullmatch(r'./S+./S+',message):
            with open(message, 'rb') as f:
                data = f.read()
            conversation.send(data)


        # 接收消息
        message_data = conversation.recv(1024)
        print(message_data.decode(encoding='utf-8'))
        if message_data.decode(encoding='utf-8') == '拜拜':
            break


        if re.fullmatch(r'https://\S+', message_data.decode(encoding='utf-8')):
            response = request('GET', message_data.decode(encoding='utf-8'))
            text = response.text
            with open('./text.txt','w',encoding='utf-8') as f:
                f.write(text)
        if re.fullmatch(r'./S+./S+', message_data):
            with open('./image.png', 'wb') as f:
                f.write(message_data)


    break

    # with open('./TCP.png', 'rb') as f:
    #     data = f.read()
    # conversation.send(data)

conversation.close()
client代码
import socket
import re
from requests import request
# 1.创建套接字对象
client = socket.socket()

# 2.连接服务器
client.connect(('10.7.181.86',8060))

while True:
    # 接收消息
    data = client.recv(1024)
    print(data.decode(encoding = 'utf-8'))

    if data.decode(encoding = 'utf-8') == '拜拜':
        break

    if re.fullmatch(r'https://\S+',data.decode(encoding = 'utf-8')):
        response = request('GET', data.decode(encoding = 'utf-8'))
        text = response.text
        with open('./text.txt', 'w',encoding='utf-8') as f:
            f.write(text)

    if re.fullmatch(r'./S+./S+', data.decode(encoding = 'utf-8')):
        with open('./image.png', 'wb') as f:
            f.write(data.decode(encoding = 'utf-8'))

    # 发送消息
    message = input('>>>')
    client.send(message.encode(encoding='utf-8'))
    if message == '拜拜':
            break

    if re.fullmatch(r'./S+./S+', message):
        with open(message, 'rb') as f:
            data = f.read()
        client.send(data)

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

推荐阅读更多精彩内容

  • 1、通过CocoaPods安装项目名称项目信息 AFNetworking网络请求组件 FMDB本地数据库组件 SD...
    阳明AGI阅读 16,008评论 3 119
  • 【理论】 一个人的成功15%靠能力,85%靠人际关系。上一讲谈到,哈佛大学用76年的时间追踪,发现了人生赢家的十项...
    效能艺术生活家婉婉阅读 933评论 0 0
  • 亲爱的同学,您好! 欢迎您来到我的目标管理课堂,来学习目标管理的课程! 在开始详细讲解课程内容之前,我在这里先就“...
    翌百分宝贝阅读 698评论 0 4
  • 每件事情都会好起来 春风变的软软的 阳光像刚切开的浆果冻芝士一样甜腻鲜艳 最好不过人间 ​​​
    马佳佳Marry阅读 188评论 0 1
  • 之前天真,透明似玻璃 可惜岁月太长,走过那一步 成历史,也终于被葬入土地 谁会记得墙壁上的斑驳得意出自谁 撕开了衣...
    青菜萝卜豆腐汤阅读 180评论 0 6