欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136

標題: 關于LWIP Raw TCP server 程序注意事項:stm32+enc28j60 [打印本頁]

作者: heicad    時間: 2014-5-20 15:27
標題: 關于LWIP Raw TCP server 程序注意事項:stm32+enc28j60

這是一個牛人寫的轉過來
你要是想寫一個完整的TCPserver的程序,你可以把程序寫成電腦向你板子發送數據,然后板子將收到的數據回發給電腦。到后期再對收到的數據進行處理以達到你板子的需求。

這個收發程序的結果應該是能夠完整的將收到的數據完整的發送給電腦,不論你電腦發送的速度有多快,包有多大,一切的不成功都是你自身的原因,不要試圖降低發送頻率或者將包變小來解決問題。那都是治標不治本的做法。

我用的板子是stm32+enc28j60,網上有一堆移植教程,不過可能你會在移植中出現各種問題,而且有可能你遇到的問題網上還沒有,我建議有時間的話看看lwip的原理,這里推薦老衲五木的《LWIP協議詳解》,相當經典,看完之后至少茅斯頓開了一大半。不過有可能你沒有多少耐心去看完,就只能彷徨又著急的去四處求救了。

接下來說幾個注意事項:

1.硬件:

2.軟件

最好參考官方lwip包里的APP,我在跑官方的程序的時候沒有問題,但是看別人寫的程序,拿來用用的時候就出了一堆問題。初級的移植相關的內容我就不說了,主要說在寫TCPserver遇到的問題。

我在看別人寫的收發數據的server,出現了在傳輸大量數據且速度很快的情況下丟失數據乃至于多出數據的情況.TCP是一種可靠性非常高的傳輸協議,在告訴和大量數據的情況下,就算有丟包(肯定有stm32無法應答的情況)TCP也會重傳,而且有滑動窗口和阻塞窗口控制,能夠知道server還能接受多大的數據包,所以一切的失敗都不是TCP協議本身的問題,一定是硬件或者軟件上寫的有問題。

在這里先講一個TCP整個工作的大致流程:enc28j60得到包-->ARP層(分析數據包是否更新ARP列表以及是否傳輸到IP層)-->IP(對收到的包進行重組,因為包太大所以發送的時候進行了分片,現在接收自然要重組)-->TCP(得到一個完整的數據包,所以你就可以在回調函數里的pbuf變量上取你想要的數據進行處理)

寫server的時候盡量還是寫完整一點,也就是盡量處理好錯誤和一些意外的情況。現在講一下官方lwip中app的tcpecho_raw中需要注意的一些語句,這些語句你寫server的時候也要注意,不然災難不斷:


作者: 1375917982gxut    時間: 2014-11-28 10:24
好資料,51黑有你更精彩!!!
作者: 十字街口    時間: 2014-12-12 15:53
正在搞這個,學習下
作者: 李志博32    時間: 2016-7-10 17:12
學習學習

作者: xiaoc27    時間: 2016-8-31 20:52
愚鈍的我,還是不明白
作者: dormclub    時間: 2019-12-13 15:59
附件在哪里呢,有資料嗎




歡迎光臨 (http://m.raoushi.com/bbs/) Powered by Discuz! X3.1