pcb结构链表_lwip中tcp_pcb结构体及其组成链表
生活随笔
收集整理的這篇文章主要介紹了
pcb结构链表_lwip中tcp_pcb结构体及其组成链表
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
在前面的日志中通過各種方法建立lwip的echo sever,都是將pc發送的數據,接收后重新發送回pc,并沒有實現發送自定義數據到host pc。
通過跟蹤echo server中接收數據后,再轉發的過程,需要使用tcp_pcb,并且狀態為ESTABLISHED,才能將數據發送到PC。
在lwip中,共有4個tcp_pcb的鏈表,分別是
tcp_active_pcbs【處于接收發送數據狀態的pcbs】;
tcp_tw_pcbs【處于時間等待狀態的pcbs】;
tcp_listen_pcbs【處于監聽狀態的pcbs】;
還有一個tcp_bound_pcbs【處于已經綁定但還沒有連接或者監聽pcbs】。
在tcp_blind()之后,tcp_pcb直接加入到了tcp_bound_pcbs鏈表中了,而我們在上圖中位置記錄這個鏈表首地址,即為鏈表中收個pcb節點的地址,在后續訪問時,也就是這個pcb的地址進行發送數據。
在將待發送的數據準備好之后,通過tcp_write()函數發送,然而這個函數并不能保證一定會發送,而是要等待數據幀到一定長度才發送,如果需要即時發送,需要通過tcp_ouput(),使其立即發送。
總結
以上是生活随笔為你收集整理的pcb结构链表_lwip中tcp_pcb结构体及其组成链表的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: cydia软件路径_Cydia报错解决大
- 下一篇: C语言中变量的链接属性