Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/sockets/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sockets Arduino WiFi屏蔽不';不能发送整个TCP数据包_Sockets_Networking_Arduino_Wifi - Fatal编程技术网

Sockets Arduino WiFi屏蔽不';不能发送整个TCP数据包

Sockets Arduino WiFi屏蔽不';不能发送整个TCP数据包,sockets,networking,arduino,wifi,Sockets,Networking,Arduino,Wifi,我有一个带Arduino WiFi屏蔽的Arduino Uno R3。WiFi屏蔽具有最新固件(V1.1.0)。我试图向路由器发送一个约900字节的数据包(该数据包用于设置UPnP端口映射)。该数据包存储在程序存储器中以保存SRAM。使用strcat\P,我可以将数据包从内存拉入缓冲区,并使用WiFiClient库(TCP)发送它 问题是我不能发送整个包裹。为了进行测试,我只需将数据包发送到位于同一局域网上的计算机,在那里我使用数据包嗅探器查看数据包。使用WiFiClient.write(),我

我有一个带Arduino WiFi屏蔽的Arduino Uno R3。WiFi屏蔽具有最新固件(V1.1.0)。我试图向路由器发送一个约900字节的数据包(该数据包用于设置UPnP端口映射)。该数据包存储在程序存储器中以保存SRAM。使用
strcat\P
,我可以将数据包从内存拉入缓冲区,并使用WiFiClient库(TCP)发送它

问题是我不能发送整个包裹。为了进行测试,我只需将数据包发送到位于同一局域网上的计算机,在那里我使用数据包嗅探器查看数据包。使用WiFiClient.write(),我会根据所使用的缓冲区大小获得不同的性能。我似乎在重复调用缓冲区大小为80的WiFiClient.write()时获得了最佳性能,直到整个数据包被“发送”。任何大于80的值都会导致另一端出现空白数据包。然而,对于80,我通常只看到大约500字节被传输。数据包总是在任意点被切断。有人知道这是什么原因吗


我做了很多谷歌搜索,我看到其他人也有类似的问题。不过,我从未遇到过解决方案。

我知道这是一个古老的解决方案,但我最近发现了解决您所描述问题的方法

tl;dr-您一次只能将90字节写入wifi屏蔽的缓冲区