标签:lis 有一个 具体步骤 处理 字符串处理 类继承 字符 from 账号
# ----数据协议相关配置-----
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