当前位置: 技术问答>linux和unix
怎么样在数据前面加入sequence number并可以循环使用?
来源: 互联网 发布时间:2015-04-26
本文导语: 我有一个project需要udp传送的包前面加上两个byte的sequence(65536),请问怎么实现? 比如 char s [256] seqnum = 1; seqnum++; 怎么样将seqnum写入s[0]和s[1]?并且在接受端怎么把这个数字取出来? 本人是蔡鸟,请大侠回答时,...
我有一个project需要udp传送的包前面加上两个byte的sequence(65536),请问怎么实现?
比如
char s [256]
seqnum = 1; seqnum++;
怎么样将seqnum写入s[0]和s[1]?并且在接受端怎么把这个数字取出来?
本人是蔡鸟,请大侠回答时,写的详细一点,谢谢!
比如
char s [256]
seqnum = 1; seqnum++;
怎么样将seqnum写入s[0]和s[1]?并且在接受端怎么把这个数字取出来?
本人是蔡鸟,请大侠回答时,写的详细一点,谢谢!
|
可以试一下我的办法:
发送端:
union{
short seq;
char s[256];
}buf;
seq = htons(seqnum);
....
sendto(sd, &buf, ....);
接受端:
short tmp;
short seq;
recvfrom(sd, &tmp, 2, ...);
seq = ntohs(tmp);
发送端:
union{
short seq;
char s[256];
}buf;
seq = htons(seqnum);
....
sendto(sd, &buf, ....);
接受端:
short tmp;
short seq;
recvfrom(sd, &tmp, 2, ...);
seq = ntohs(tmp);