项目记录02--客unity,服erlang--框架net
来源:互联网 发布:淘宝助理导入不了csv 编辑:程序博客网 时间:2024/05/22 17:26
重大:
遇到问题:服务端接收完信息客户端打印:接收到协议返回 长度为: 0,接受Socket数据num=0:DisConnect(),开始不明白为什么会这样,难道服务端接收完数据会自动发送一个消息过来吗?
erlang服务端async_recv 异步接收完所有数据会自动使用Shutdown方法关闭socket连接并且所有可用数据均已收到,客户端就是则 EndReceive 方法将立即完成并返回零字节。办法:就是服务端完成接收就开始下次异步监听接收。
%% 看清楚自己写的协议文档,不能所以为而为之,会坑死,一切以文档为准。比如:文档写的写入字符串前面写入字符串的Len,而int不需要写入长度(我自以为int耶写入长度erlang解析不够字节)
GetString can only be called from the main thread.
Constructors and field initializers will be executed from the loading thread when loading a scene.
客户端:
1.字符限制12,密码10。
2.防止一台手机多次注册账号使用手机唯一标示SystemInfo.deviceUniqueIdentifier 设备唯一标识符,一般情况不存在。原本计划绑定手机,但是如果换手机就不能玩,貌似不好。
3.流程:开机检查是否存在账号Playerfrefs,存在就显示快速登录按钮和输入按钮,不存在显示登录注册界面-->输入Name,密码。不存在就直接显示输入界面。
4.对名字,密码进行合法检查在注册的时候。可以再服务端做检查也可以再客户端做检查,为简单起见暂时只做客户端检查。
服务端:
1.写个协议类专门读写协议。以后对协议扩展就在这里,不和逻辑冲突。
2.协议类规范里面:int要注意大小端问题,string或者MD5,bin等不需要。
3.生成MD5的长度是32个字节。
4.Erlang中常用的类型转换http://blog.sina.com.cn/s/blog_53a5047b01018yqv.html
5.卡在MD5验证一段时间,客户端如果组装服务端就如何组装,使用 比特位组装穿过来的数据+MD5Key:比如需要用到head数据和body数据再加key
MD5Test = <<HeadData:?HEADER_LENGTH/binary-unit:8,BodyData:Len/binary-unit:8>>,
MD5Test2 = binary_to_list(MD5Test)++?MD5,
1.完成基本协议调试。
遇到问题:服务端接收完信息客户端打印:接收到协议返回 长度为: 0,接受Socket数据num=0:DisConnect(),开始不明白为什么会这样,难道服务端接收完数据会自动发送一个消息过来吗?
erlang服务端async_recv 异步接收完所有数据会自动使用Shutdown方法关闭socket连接并且所有可用数据均已收到,客户端就是则 EndReceive 方法将立即完成并返回零字节。办法:就是服务端完成接收就开始下次异步监听接收。
%% 看清楚自己写的协议文档,不能所以为而为之,会坑死,一切以文档为准。比如:文档写的写入字符串前面写入字符串的Len,而int不需要写入长度(我自以为int耶写入长度erlang解析不够字节)
GetString can only be called from the main thread.
Constructors and field initializers will be executed from the loading thread when loading a scene.
客户端:
1.字符限制12,密码10。
2.防止一台手机多次注册账号使用手机唯一标示SystemInfo.deviceUniqueIdentifier 设备唯一标识符,一般情况不存在。原本计划绑定手机,但是如果换手机就不能玩,貌似不好。
3.流程:开机检查是否存在账号Playerfrefs,存在就显示快速登录按钮和输入按钮,不存在显示登录注册界面-->输入Name,密码。不存在就直接显示输入界面。
4.对名字,密码进行合法检查在注册的时候。可以再服务端做检查也可以再客户端做检查,为简单起见暂时只做客户端检查。
服务端:
1.写个协议类专门读写协议。以后对协议扩展就在这里,不和逻辑冲突。
2.协议类规范里面:int要注意大小端问题,string或者MD5,bin等不需要。
3.生成MD5的长度是32个字节。
4.Erlang中常用的类型转换http://blog.sina.com.cn/s/blog_53a5047b01018yqv.html
5.卡在MD5验证一段时间,客户端如果组装服务端就如何组装,使用 比特位组装穿过来的数据+MD5Key:比如需要用到head数据和body数据再加key
MD5Test = <<HeadData:?HEADER_LENGTH/binary-unit:8,BodyData:Len/binary-unit:8>>,
MD5Test2 = binary_to_list(MD5Test)++?MD5,
Hex = util:md5(MD5Test2)
1.完成基本协议调试。
2.服务端完成MD5验证,服务端已经完全解析客户端数据和验证。
3.客户端登陆界面和逻辑完成。
下步:
1.服务端打包数据发送给客户端调试解包。
2.可能写一个服务端自动生成协议read,write工具和客户端一样自动化,协议应该独立出来不和程序逻辑混合,就类似个接口。
3.服务端连接MySql.
0 0
- 项目记录02--客unity,服erlang--框架net
- 项目记录01--客unity,服erlang--框架net
- 项目记录03--客unity,服erlang--框架net
- 项目记录05--客unity,服erlang--数据管理与工具
- 项目记录07--客unity,服erlang--AStarPathing 寻路
- 项目记录05--客unity,服erlang--另外一种AssetBundle打包方式
- 项目记录04--客户端unity,服务端erlang--打包数据csv
- 项目记录23--unity-tolua框架MediatorManager
- 项目记录18--erlang服务器登录注册,大体框架
- 项目记录24--unity-tolua框架 View01---UIBase.lua
- 项目记录25--unity-tolua框架 View02---BasePanel.lua
- 项目记录26--unity-tolua框架 View03-UIManager.lua
- 项目记录27--unity-tolua框架 网络端+protobuf
- 项目记录28--unity-tolua框架 lua使用协程
- 项目记录29--unity-tolua框架 c#导出定时器lua
- 项目记录30--unity-tolua框架 回顾之前Dotween导入
- unity项目知识点记录
- erlang日志框架lager解读记录
- STL入门简介
- 跟着猫哥学Golang[8] - 函数
- [sap abap]Workbench Request & Customizing Request的区别
- VM虚拟机与主机的独立IP相互访问
- LeetCode 23_Merge k Sorted Lists
- 项目记录02--客unity,服erlang--框架net
- viewgroup如何感知view的LayoutParams
- 关于SDWebImage内存缓存的一点简单理解-King
- Android中View的绘制过程
- MAVEN项目标准目录结构
- SQL 数据聚合
- CocoaPods做iOS项目的依赖管理
- 3D Touch大法
- 初级案例