基于UDP的炸飞机游戏服务器
developed by TaihouDaisuki (UDP Socket by APTXOUS(yyy)-my roommate)
Client developed by kagaya-my roommate
基本交互逻辑
原则:服务器不对包进行确认,仅对客户端发出请求进行响应
固定包结构:1字节阶段号+1字节事件号+20字节请求者用户名
-
登陆阶段
接收包:用户登陆请求事件,载荷20字节密码
发送包:1字节登陆结果(1-成功;0-失败)+100字节附加字符串
-
用户界面阶段
接收包:登出,空包
返回包:等待,空包(这里起确认作用)接收包:拉取在线用户列表事件,1字节起始数目,1字节请求数目
发送包:用户列表,1字节用户个数,1字节在线总数,若干20字节在线用户名
发送包:邀请请求,20字节邀请方用户名接收包:邀请用户对局,20字节被邀请方用户名
发送包:空包,等待对方响应
发送包:对局确认,4字节字符串,为房间id(0000-9999)时接受,否则拒绝接收包:邀请结果,1字节结果(1-同意;0-拒绝)
发送包:对局确认,4字节字符串,为房间id(0000-9999)时接受,否则拒绝
-
房间界面阶段
接收包:离开房间,空包
发送包:等待,空包(这里起确认作用)接收包:用户状态,1字节是否准备(1-已准备;0-未准备)
发送包:对方状态,1字节是否准备(1-已准备;0-未准备)
发送包:对方已退出房间,空包
发送包:双方已准备,对局即将开始接收包:飞机坐标,4字节机头+机尾
发送包:空包,等待对方上传飞机信息
发送包:开始,1字节先后手信息(1-先;0-后)
-
对局阶段
接收包:空包,等待方
发送包:空包,对方未操作
发送包:点击操作,2字节点击位置,1字节结果(1-空;2-飞机;3-机头)
发送包:确认操作,4字节确认位置,1字节结果(1-猜中;0-未猜中),1字节对局信息(1-结束;0-继续) 发送包:对方已退出房间,空包(对局直接获胜)接收包:点击操作,2字节点击位置
发送包:点击反馈,1字节结果接收包:确认操作,4字节确认位置
发送包:确认反馈,1字节结果,1字节对局信息
-
特殊情况(任何情况下收到之后都会立即发送,优先级最高)
发送包:踢人(预存进用户缓存,收到该用户包后立即返回)