完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
电子发烧友论坛|
将PCB->unacked 插入到pcb->unsent中
struct tcp_seg *seg; struct tcp_seg **cur_seg; **这里定义了一个结构体指针seg,一个结构体二级指针cur_seg; if (pcb->unacked == NULL) { 判断pcb->unacked是否为空, return; } /* Move the first unacked segment to the unsent queue */ /* Keep the unsent queue sorted. */ seg = pcb->unacked; **将pcb->unacked指向结构体指针seg pcb->unacked = seg->next; **将pcb->unacked->next指向 pcb->unacked的头指针,确保pcb->unacked链表的完成性。 cur_seg = &(pcb->unsent); 将pcb->unsent的头地址的地址指向二级指针cur_seg,这里使用的是二级指针 while (*cur_seg && TCP_SEQ_LT(ntohl((*cur_seg)->tcphdr->seqno), ntohl(seg->tcphdr->seqno))) { 判断pcb->unsent链表知不为空, 且pcb->unsent 中的tcphdr->seqno 小于 pcb->unacked中的tcphdr->seqno cur_seg = &((*cur_seg)->next ); 条件成立的话,将pcb->unsent->next 的地址的地址指向二级指针cur_seg,这个将用作链表连接使用 } seg->next = *cur_seg; 这里将处理好的pcb->unsent的地址赋值到pcb->unacked-next中,将pcb->unacked 连接到pcb->unsent中 *cur_seg = seg; 将pcb->unacked的头指针指向pcb->unsent的头指针。 这里我是看懂了,但是我不,明白的是为什么要用二级指针,我觉得就用2个结构体指针也能实现链表的添加啊 |
|
相关推荐
2 个讨论
|
|
|
还是说我理解错了
|
|
|
|
|
|
|
|
|
如果while条件成立的话,我是感觉就把pcb->unsent的第一个成员丢掉了,这样对不对?
|
|
|
|
|
|
|
|
只有小组成员才能发言,加入小组>>
UCOSII中断中添加OSSemPost(Sem);程序无法运行
5269 浏览 1 评论
在BC5.0上编译uC/OS-II出现"eeror writing object file",怎样处理???
3473 浏览 1 评论
/9
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2025-12-12 05:06 , Processed in 0.449129 second(s), Total 42, Slave 35 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191

淘帖
4524