发布网友 发布时间:2022-04-20 07:05
共1个回答
热心网友 时间:2022-06-28 14:56
跑通讯协议,或者在1024尾部加2字节CRC校验码,接收后在验证CRC校验码,或者最简单的加1字节校验和!追问有没有C#的程序实现啊
追答public byte sum(byte[] data)
{
int ret=0;
for(int count=0;count<data.Length;count++) { ret += data[count]; }
return((byte)ret);
}
最简单的1字节校验和函数,发送的时候,调用此函数传递1024字节数据进去,返回1个校验和加到1024尾部,然后发送1025个字节到Socket,接收方获取数据的长度NetworkStream.EndRead()判断是否1025字节,否的话传输失败,是的话取前1024字节,计算校验和于第1025字节比较,如果不相等,证明接收的数据中存在错误;
如果跑通讯协议的话,那严谨性更高,例如简单点的通讯协议报文里包含报文头、数据域长度、控制字、数据域、校验、结束符!