簡體   English   中英

Arduino WiFi Shield無法發送整個TCP數據包

[英]Arduino WiFi Shield doesn't send whole TCP packet

我有一個帶Arduino WiFi防護罩的Arduino Uno R3。 WiFi防護板具有最新固件(V1.1.0)。 我正在嘗試向路由器發送一個大約900字節的數據包(該數據包用於設置UPnP端口映射)。 該數據包存儲在程序存儲器中以保存SRAM。 使用strcat_P ,我可以將數據包從內存中拉到緩沖區中,然后使用WiFiClient庫(TCP)發送。

問題是我無法發送整個數據包。 為了進行測試,我只是將數據包發送到位於同一LAN上的計算機,並在其中使用數據包嗅探器查看該數據包。 使用WiFiClient.write(),根據所用緩沖區的大小,我會得到不同的性能。 我似乎獲得最佳性能,即反復調用80緩沖區大小的WiFiClient.write(),直到整個數據包都被“發送”為止。 任何大於約80的值都會在另一端導致空白數據包。 但是,對於80,我通常只看到大約500字節被傳輸。 數據包總是在任意點被切斷。 有誰知道是什么原因造成的?

我做了很多谷歌搜索,我發現其他人也有類似的問題。 不過,我從未遇到過解決方案。

我知道這很舊,但是最近發現這篇文章可以解決您所描述的問題。

tl; dr-您一次只能向wifi屏蔽板的緩沖區寫入90個字節

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM