码迷,mamicode.com
首页 > 其他好文 > 详细

多人聊天室具体步骤

时间:2020-05-07 22:44:35      阅读:75      评论:0      收藏:0      [点我收藏+]

标签:lis   有一个   具体步骤   处理   字符串处理   类继承   字符   from   账号   

多人聊天室具体步骤

  • 制作协议报头,响应数据,制定一个模块config.py
# ----数据协议相关配置-----
REQUEST_LOGIN=‘0001‘ #登录请求
REQUEST_CHAT=‘0002‘ # 请求聊天
REQUEST_LOGIN_RESULT=‘1001‘ # 登录结果响应
RESPONSE_CHAT=‘1002‘ # 聊天响应
DELIMITER=‘|‘ # 自定义协议数据分隔符

  • 处理服务器响应字符串的拼接
from config import *
class ResponseProtocol(object):
    """ 服务器响应协议的格式字符串处理"""
    @staticmethod
    def response_login_result(result,nickname,username):
        """
        返回生成用户登录的结果字符串
        :param result: 登录结果,0表示失败,1表示成功
        :param nickname: 登录用户的昵称,登陆失败为空
        :param username:登录用户的账号,如果失败为空
        :return:返回给用户登录结果协议字符串
        """
        return DELIMITER.join([REQUEST_LOGIN_RESULT],result,nickname,username)
    @staticmethod
    def response_chat(nicakname,messages): #这里是服务器发送给客户端的消息 转发的消息
        """
        生成返回给用户的消息字符串
        :param nicakname:发送消息的用户昵称
        :param messages:消息正文
        :return:返回给用户的消息字符串
        """

        return  DELIMITER.join(RESPONSE_CHAT,nicakname,messages)

主体框架搭建

server.py 模块定义Server类来处理服务器业务逻辑,该类实现了服务器的主体框架

import socket
from  config import *




class ServerSocket(socket.socket):
    """自定义套接字,负责初始化服务器套接字需要的相关参数"""
    def __init__(self):
        # 设置为tcp类型
        super(ServerSocket,self).__init__(socket.AF_INET,socket.SOCK_STREAM)
        # 绑定地址和端口
        self.bind((SERVER_IP,SERVER_PORT))
        # 监听端口
        self.listen(128)

这里我们自定义一个套接字,让类继承socket ,super找父类的套接字有一个初始化,不初始化的类型告诉他 super(ServerSocket,self).__init__(socket.AF_INET,socket.SOCK_STREAM),绑定地址和端口,这里的参数不能写死 以为你要是写死,以后你要改代码要找一大堆的代码,这里我们把它固定在config.py 里面,以后要想改直接到配置相关项去改, 初始化服务器套接字需要的相关操作。
等待后续更新

多人聊天室具体步骤

标签:lis   有一个   具体步骤   处理   字符串处理   类继承   字符   from   账号   

原文地址:https://www.cnblogs.com/zc110/p/12846222.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!