Unity - A计划(永久有效期) 扫二维码继续学习 二维码时效为半小时

(196评价)
价格: 4019.00元

第一次读取,读满所有缓存1024个,然后执行OnReceiveData,发现消息长度未1225,接收不完整,返回。

第二次读取,发现Remain=0,先执行OnReceiveData,由于相同的原因未解析成功;紧接着扩充缓存为 2048,Remain=1024?;继续接收消息剩余部分;继续执行OnReceiveData,解析成功。

 

 

[展开全文]
lsw5530 · 2020-03-01 · 0

第一次,1024接收不全

第二次,2048接收不全

第三次4096接收完整

[展开全文]
lsw5530 · 2020-03-01 · 0

1.客户端发送消息用BeginSend,用到队列。

2.客户端接收消息用BeginReceive,用到队列。

3.服务器发送消息用BeginSend,没有队列。

4.服务器接收消息用Receive,没有队列。

[展开全文]
lsw5530 · 2020-03-01 · 0

SqlSugar是.Net版本,可以在NuGet上下载。

MySql是类库形式新建的。

[展开全文]
lsw5530 · 2020-03-01 · 0

一个数据库对应一个SqlSugarClient

一个表对应一个实体类

[展开全文]
lsw5530 · 2020-03-01 · 0

实体类内字段名一般应和数据库表内列名一致,否则需要标注别名。

[展开全文]
lsw5530 · 2020-03-01 · 0

token是方便客户端下次自动登录用的。本次登录成功后,服务器会给客户端一个新token。

loginDate可以用于判断下次自动登录时,token是否过期,本项目没有用到。

[展开全文]
lsw5530 · 2020-03-01 · 0

ExecuteReturnIdentity()可以获取影响行的主键值。

[展开全文]
lsw5530 · 2020-03-01 · 0

需要从NuGet安装MySql.data ,用于连接数据库。

[展开全文]
lsw5530 · 2020-03-01 · 0

验证码Code暂时用不到。

[展开全文]
lsw5530 · 2020-03-01 · 0

当(已登录过)断线并重新连接成功后,自动登录:利用PlayerPref(或easysave或objectprefabs...插件)保存的用户名和token登录。

这里用的伪代码。

[展开全文]
lsw5530 · 2020-03-01 · 0

在Update中检测断线重连。

在协程函数中每隔1秒,检测网络变化时断线重连。可以确保网络变化后马上进行重连,而不用等心跳包收不到了。改进方式是m_CurNetWork = Application.internetReachability在重连回调函数中赋值。

Application.internetReachability表示当前网络连接情况,当切换其他网络时,值会改变。

[展开全文]
lsw5530 · 2020-03-01 · 0

网络IO用的Select多路复用加阻塞。

AES加密协议对象时要求不能为空,所以让ProtoType在构造函数内赋值。

lsw:建议在连接失败的回调里面设置m_Diaoxian = true;//确保一直尝试重连

[展开全文]
lsw5530 · 2020-03-02 · 0

IO阻塞或非阻塞分为

同步 :

异步:

非阻塞性

多线程

发过来的信息存进队列

多路复用:

 

[展开全文]
KNGGGAMES · 2021-07-22 · 0

https://zhuanlan.zhihu.com/p/418293949

[展开全文]
tomGo · 2023-01-09 · 0

1.客户端没有获取密钥前,用公钥向服务器申请密钥。使用公钥加密“申请密钥协议”。

2.客户端获得密钥后,与服务器的通信采用密钥加密。

[展开全文]
lsw5530 · 2020-02-29 · 0

类库不能获取到程序集z的类。

[展开全文]
lsw5530 · 2020-02-29 · 0

1.需要在项目->Properties->Assemblyinfo.cs中增加对Log4net的配置:将Log4Net的配置文件路径信息添加进去。

2.log4net.config配置文件选择始终复制到输出目录。

[展开全文]
lsw5530 · 2020-02-29 · 0

Length<8时,可视为能读的数据都读取完了。

[展开全文]
lsw5530 · 2020-02-29 · 0

用socket接收新数据之前,先确保缓冲区有空间,如果空间为0:

1.处理接收的数据;

2.数据移动到iRedIdx=0位置;

3.上面两项操作仍不起作用的话(已接收旧数据长度太大导致未接收完整),不断扩容缓冲区。

[展开全文]
lsw5530 · 2020-02-29 · 0