supersocket实际应用之你画我猜游戏(一)


public class DataRequestInfo : IRequestInfo
{
public string Key { get; set; } public byte[] Data { get; set; }
public byte[] DataSend { get; set; }
public DataRequestInfo(string key,byte[] header, byte[] bodyBuffer)
{
Key= key;
int length = ByteConvertHelper.byteArrayToInt(header); Data = new byte[length]; Array.Copy(bodyBuffer, 0, Data, 0, length);
DataSend=new byte[length+4];
Array.Copy(header, 0, DataSend, 0, header.Length);
Array.Copy(bodyBuffer, 0, DataSend, header.Length, bodyBuffer.Length);
} }

public class PaintAppsession : AppSession<PaintAppsession, DataRequestInfo>
{
public string IDKey { get { return base.SessionID; } }
// public string NickName { get; set; } public ClientPlayerInfo ClientPlayerInfo { get; set; }
public bool isReady { get; set; }
protected override void HandleException(Exception e)
{
// var a = e;
}
}

public class PaintAppServer : AppServer<PaintAppsession, DataRequestInfo>
{ public PaintAppServer(IReceiveFilterFactory<DataRequestInfo> protocol) : base(protocol)
{
}
}

internal class MyServerReceiveFilter : FixedHeaderReceiveFilter<DataRequestInfo>
{
public MyServerReceiveFilter(): base(4)
{ }
protected override int GetBodyLengthFromHeader(byte[] header, int offset, int length)
{
var data=new byte[length];
Array.Copy(header, offset, data, 0, length); var len = ByteConvertHelper.byteArrayToInt(data); return len;
} protected override DataRequestInfo ResolveRequestInfo(ArraySegment<byte> header, byte[] bodyBuffer, int offset, int length)
{
var data = new byte[length];
Array.Copy(bodyBuffer.ToArray(), offset, data, 0, length); return new DataRequestInfo("key1",header.ToArray(), data);
} public override DataRequestInfo Filter(byte[] readBuffer, int offset, int length, bool toBeCopied, out int rest)
{
return base.Filter(readBuffer, offset, length, toBeCopied, out rest);
} }
使用:

IServerConfig m_Config = new ServerConfig
{
Port = port,
Ip = "Any",
MaxConnectionNumber = 1000,
Mode = SocketMode.Tcp,
Name = "CustomProtocolServer",
MaxRequestLength = 10240 }; if (appServer.Setup(m_Config, logFactory: new ConsoleLogFactory())){;}
supersocket实际应用之你画我猜游戏(一)的更多相关文章
- Vue+WebSocket+ES6+Canvas 制作「你画我猜」小游戏
Vue+WebSocket+ES6+Canvas 制作「你画我猜」小游戏 转载 来源:jrainlau 链接:https://segmentfault.com/a/1190000005804860 项 ...
- Node学习笔记(三):基于socket.io web版你画我猜(一)
经过惨淡的面试,也是知道了自己的不足,刚好最近在学习node,心中便有了做一个web版的你画我猜的想法 首先说下思路,在做准备工作的时候,有两个大概的思路: 1.规定一块div,捕捉鼠标事件,动态生成 ...
- java 你画我猜 了解一下
0-设计思路: 你画我猜顾名思义,有一个人画,一个人猜,两个思路: 1)一个中央服务器,中转数据,两个client端:,a画对应点的数据通过服务器发给客户端b,b通过这些数据进行绘画,换颜色人,等等, ...
- Node学习笔记(三):基于socket.io web版你画我猜(二)
上一篇基础实现的功能是客户端canvas作图,导出dataURL从而实现图片信息推送,下面具体讲下服务端的配置及客户端的配置同步 首先先画一个流程图,讲下大概思路 <canvas id=&quo ...
- 基于j2ee的程序代写MVC架构
人力资源管理系统 完成系统静态页面设计,页面数量不少于10个,页面需用CSS进行美化,并为需要验证的信息利用JavaScript提供客户端验证.要求至少包含部门信息及部门内员工信息的添加.修改.删除和 ...
- 如何从“点子”落地到“执行”?—完整解析1个手游传播类mini项目的进化
本文来自网易云社区 作者:林玮园 从点子到落地,是不确定到确定的过程,是从模糊概念到具体现实的实现过程.无论什么点子,在落地变现的过程中都会有很多疑问产生. 首先,不确定点子本身是否成立.点子的背后是 ...
- 用 Java 做个“你画手机猜”的小游戏
本文适合有 Java 基础的人群 作者:DJL-Lanking HelloGitHub 推出的<讲解开源项目>系列.有幸邀请到了亚马逊 + Apache 的工程师:Lanking( htt ...
- 七牛CEO许式伟:移动游戏资源存贮的大趋势
(国内知名Android开发论坛eoe开发者社区推荐:http://www.eoeandroid.com/) 9月14日,eoe移动开发者大会正式在北京国家会议中心召开,七牛云储存CEO许式伟先生做了 ...
- 项目游戏开发日记 No.0x000001
14软二杨近星(2014551622) 既然已经决定了开发软件, 时不时就要练练手, 还要时不时的去寻找素材, 因为开发的人物设定就是DotA2里面的祈求者, 所以, 就去找了他的相关人物图片和模型, ...
- 【python游戏编程之旅】第一篇---初识pygame
本系列博客介绍以python+pygame库进行小游戏的开发.有写的不对之处还望各位海涵. 一.pygame简介 Pygame 是一组用来开发游戏软件的 Python 程序模块,基于 SDL 库的基础 ...
随机推荐
- HDC2021技术分论坛:HarmonyOS本地模拟器重磅来袭!
作者:longjiangyun,模拟器开发工程师 HarmonyOS模拟器是应用开发者使用IDE进行代码开发.调试.测试等活动中必不可少的工具,它分为本地模拟器和远程模拟器,其中远程模拟器又分为单设备 ...
- Godot.NET C#IOC重构(2):TileMap 详解
目录 前言 TileMap添加 TileMap绘制 TileMap 连续图块 修改纹理原点 统一设置 自动地形 匹配规则 修改匹配概率 修改概率前 修改概率后 随机图块 Scattering 不连续间 ...
- 链表LinkedList
#include <iostream> #include <vector> using namespace std; struct Node{ int val; Node *n ...
- 使用Oracle SQL Developer工具完成Mariadb数据库迁移到Oracle数据库
Oracle SQL Developer 是一个免费的集成开发环境,简化了传统部署和云部署中 Oracle 数据库的开发和管理.SQL Developer 提供完整的端到端的 PL/SQL 应用开发, ...
- 力扣682(java)-棒球比赛(简单)
题目: 你现在是一场采用特殊赛制棒球比赛的记录员.这场比赛由若干回合组成,过去几回合的得分可能会影响以后几回合的得分. 比赛开始时,记录是空白的.你会得到一个记录操作的字符串列表 ops,其中 ops ...
- 暑期集训 Day7 —— 模拟赛复盘
${\color{Green} \mathrm{Problem\ 1 :最优包含 }} $ 发现是 DP,于是开始设计状态:DP[i][j] 表示前一个字符串匹配到位置 i,后一个匹配到 j 的最少修 ...
- 有效预警6要素:亿级调用量的阿里云弹性计算SRE实践
简介: 关注保持良好的预警处理,持续解决系统隐患,促进系统稳定健康发展. 编者按:随着分布式系统和业务需求的飞速发展,监控告警在我们保障系统稳定性和事故快速恢复的全周期中都是至关重要的.9月3号,阿里 ...
- Delta Lake基础介绍(商业版)
简介:介绍 Lakehouse 搜索引擎的设计思想,探讨其如何使用缓存,辅助数据结构,存储格式,动态文件剪枝,以及 vectorized execution 达到优越的处理性能. 作者:李洁杏,Da ...
- 供应链商品域DDD实践
简介: DDD是一套方法论,实践能否成功,不仅仅是个技术问题,更是执行贯彻实施的问题.本文将就DDD的基本概念和DDD的实施进行分享. 作者 | 侧帽来源 | 阿里技术公众号 前言 供应链商品域DDD ...
- Cube 技术解读 | 详解「支付宝」全新的卡片技术栈
简介: 魔方卡片(Cube),让 App 首页实现敏捷更新. CodeHub#7 正式落幕,来自蚂蚁集团的技术专家「京君」与掘金社区的开发者们分享了「支付宝」全新的卡片技术栈--魔方卡片(Cub ...