C# socket通信 怎么验证丢包率和误码率
周期传输长为1024比特的数据由于频率很快所以人为很难观察出是否所有数据都已经正确接收所以要添加一段测试程序怎样处理发送和接收数据的格式从而可以清晰的看出是否在接收端丢失...
周期传输长为1024比特的数据 由于频率很快 所以人为很难观察出是否所有数据都已经正确接收 所以要添加一段测试程序 怎样处理发送和接收数据的格式 从而可以清晰的看出是否在接收端丢失或者传输错误。
展开
1个回答
展开全部
跑通讯协议,或者在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字节比较,如果不相等,证明接收的数据中存在错误;
如果跑通讯协议的话,那严谨性更高,例如简单点的通讯协议报文里包含报文头、数据域长度、控制字、数据域、校验、结束符!
Storm代理
2023-07-25 广告
2023-07-25 广告
StormProxies是一家国内优质海外HTTP代理商,拥有一个庞大的IP资源池,覆盖200多个地区,IP数量大且匿名度高。其优点还包括超高并发、稳定高效、技术服务等特点,同时提供HTTP、HTTPS以及SOCKS5协议支持。此外,Sto...
点击进入详情页
本回答由Storm代理提供
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询