64,607
社区成员
发帖
与我相关
我的任务
分享
用来做简单的身份识别,但是理论上说一个socket链接本身是安全的,除非客户端自己搞破坏 对了,魔数是干嘛用的?
对了,魔数是干嘛用的?
一般没有问题的,我之前负责的项目发布了两三年到了 10 多个客户那里都没有问题
后来出现莫名其妙的问题,测试时挂 30 多台设备连接到服务端,抓包就看见非预期的数据了, TCP 并不能保证 100% 准确
这位老师讲的好,长见识了。 您这里说的魔术,是不是就是平时所谓的同步头/同步码这个?
Type 是不是定义成这样:1 json 2 protobuf 3 ……
typedef struct
{
unsigned int total_packages; //包总数
u_long index; //当前包序号
int total_len; //数据总长度
char data[ONE_PACKAGE_LEN]; //当前包数据
}socket_data , *psocket_data;
。
我不明白,这明明是TCP上层的问题,为什么一定要带到TCP协议里面来讨论呢?
typedef struct tagRpcProtocLayer
{
unsigned int nMagic; //魔数; 比如:"RPC$"; 608391250;
unsigned int nTotalSize; //本次数据流总大小;
unsigned short nHeaderSize; //头大小,方便扩展;
unsigned char nVersion; //协议版本 方便兼容;
……
}RPC_HEADER;
像只有“长度+内容”的协议,和 ”写代码不进行非空判断“有啥区别? 和 “写代码默认程序按正常流程走到底,完全不进行错误处理”有啥区别?
楼主,赶紧去群里怼他。