硬件:老古,现在我要发送7个字节的UDP数据报,按照你的意思做了,但是...请帮忙!
老古,现在我要发送7个字节的UDP数据报,按照你的意思做了,就是把第八个字节置为0.然后
再计算校验和,可是我的计算机收不到数据,可是8019发送指示灯却指示数据已发送..但是我
发送偶数个字节没有一点问题.我想问几个问题:
1.udplength是否为7?
2.假如我这个数据报全部长度为51或者101字节,我把8019发送字节数寄存器的值相应的置
为60或者120.这样会对接收有影响吗?
3.我的计算UDP校验和是这样的,是否正确,望赐教!
uint createudpcrc1(uint length) reentrant
{
uchar i;
long int lsum;
unsigned int r,r1;
unsigned int crc1;
crctemp.dword=0;
lsum = 0l;
for (i=0;i<(8+length);i++)
lsum = lsum+(long int)(txdnet.ippacket.ippacket[6+i]);
r = (unsigned int)(lsum & 0xFFFF);
r1 = (unsigned int)((lsum -r)>>16);
crc1 = ~(r+r1);
crc1 -= ((txdnet.ippacket.ippacket[4] & 0x00FF)+txdnet.udpframe.udplength);
return crc1;
}
其中参数LENGTH 为要发送UDP数据的字数.如为8字节.length=4. 为7.length=7;
谢谢!
发表时间:2002年6月6日10:15:00