当前位置: 首页 > news >正文

L3-21

exer01 Message

# 1.定义Message消息类和cmd,content,sender,to四个属性,其中to默认为None
class Message:
    def __init__(self, cmd, content, sender, to=None):
        self.cmd = cmd
        self.content = content
        self.sender = sender
        self.to = to
# 2. 创建登录消息对象msg1,聊天消息对象msg2
msg1 = Message('login', '小派', '小派')
msg2 = Message('chat', '出来踢球', '小派', '童童')
# 3. 输出msg1和msg2对象的__dict__属性
print(msg1.__dict__)
print(msg2.__dict__)
# 4. 先运行程序,然后解开下行注释,再运行程序查看结果
print(msg1.encode())

exer02 Json

# 1.定义Message消息类和cmd,content,sender,to四个属性,其中to默认为None
class Message:
    def __init__(self, cmd, content, sender, to=None):
        self.cmd = cmd
        self.content = content
        self.sender = sender
        self.to = to
# 2. 创建登录消息对象msg1,聊天消息对象msg2
msg1 = Message('login', '小派', '小派')
msg2 = Message('chat', '出来踢球', '小派', '童童')
# 3. 输出msg1和msg2对象的__dict__属性
print(msg1.__dict__)
print(msg2.__dict__)
# 4. 先运行程序,然后解开下行注释,再运行程序查看结果
print(msg1.encode())

exer03 client

from socket import *
import json


class Message:
    def __init__(self, cmd, content, sender, to=None):
        self.cmd = cmd
        self.content = content
        self.sender = sender
        self.to = to


class Client:
    def __init__(self, ip, port):
        self.socket = socket()
        self.socket.connect((ip, port))

    # 1. 定义sendMsg方法,将消息对象转换为json字符串发送
    def sendMsg(self, msg):
        msg = json.dumps(msg.__dict__)
        self.socket.send(msg.encode())

    def run(self):
        while True:
            content = input('请输入用户名:')
            if not content:
                continue
            # 2. 创建登录时消息对象
            msg = Message('login', content, content)
            # 3. 把下行代码修改为调用sendMsg发送消息
            self.sendMsg(msg)
            res = self.socket.recv(1024).decode()
            print('客户端收到的消息是:', res)
        self.socket.close()


client = Client('l345.61it.cn', 10031)
client.run()

相关文章:

  • 上海做网站较好的公司想在百度上推广怎么做
  • 两学一做网站按钮图片免费网站统计代码
  • 音乐网站设计怎么做做seo前景怎么样
  • 做装修的业务网站企业专业搜索引擎优化
  • 12306网站架构关键词排名点击器
  • 北京市地铁建设管理公司网站越秀seo搜索引擎优化
  • 在线记事本——支持Markdown
  • Maven/Gradle的讲解
  • Blender 导入 FBX 文件时,“Use Pre/Post Rotation”
  • 前沿计组知识入门(四)
  • 【GPT入门】第 34 课:深度剖析 ReAct Agent 工作原理及代码实现
  • 基于SSM的社区爱心捐赠管理系统
  • 算法刷题记录——LeetCode篇(2.2) [第111~120题](持续更新)
  • STM32F103C8T6实现 SG90 360 °舵机转动
  • RabbitMQ应用问题
  • Ubuntu挂载HDD迁移存储PostgreSQL数据
  • 哈尔滨工业大学:大模型时代的具身智能
  • [ctfshow web入门] web2
  • Error in v-on handler: “TypeError: handler.apply is not a function“
  • 支持selenium的chrome driver更新到135.0.7049.42
  • 智能测试用例生成:分块实现大模型完整回答的最佳策略
  • Python作业1 if __name__==‘__main__‘
  • Spring Boot整合MyBatis-Plus实现CRUD操作教程
  • 【CMake】《CMake构建实战:项目开发卷》笔记-Chapter10-策略与向后兼容
  • C++信号与槽机制自实现
  • win10 笔记本电脑安装 pytorch+cuda+gpu 大模型开发环境过程记录