您好!
根据 API 文档
sl_Recv 的参数"len"的范围为1-16000个字节。
这是否意味着 CC3120MOD 的内部缓冲器支持在从主机 MCU 接收后读取的16000字节?
现在、我们接收到1500字节、它可以正常工作。 我们将把数据包增加到大约2500字节。
是否需要接收1个以上的数据包(从 CC3120MOD 到主机 MCU 的2个事务)、还是可以用一个数据包接收2500字节?
此致、
Ilian
This thread has been locked.
If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.
您好!
根据 API 文档
sl_Recv 的参数"len"的范围为1-16000个字节。
这是否意味着 CC3120MOD 的内部缓冲器支持在从主机 MCU 接收后读取的16000字节?
现在、我们接收到1500字节、它可以正常工作。 我们将把数据包增加到大约2500字节。
是否需要接收1个以上的数据包(从 CC3120MOD 到主机 MCU 的2个事务)、还是可以用一个数据包接收2500字节?
此致、
Ilian
在数据流套接字中、NWP 缓冲接收到的字节而不是数据包。
因此、从应用角度来看、您是否获得1个或更多数据包中的数据无关紧要(Wi-Fi 的典型 MTU 为~1500B)。
NWP 中的存储器资源 有限、并且存储器在使用的套接字之间进行分配。 每个套接字的缓冲区可根据系统用例进行减少 、但理论上您可以调用 sl_Recv 以获得16000个字节(如果缓冲区已满)。 BTW。 当缓冲区已满时、NWP 不 会在 套接字上接收额外的数据包-直到主机从缓冲区中读取数据。 这将导致重新传输并降低 TCP 数据流的速度(因此您可能应该读取较小的数据块以防止这种情况)。
在大多数情况下、不会有16K 的等待时间、因此您可能不应该为接收分配如此大的缓冲区。
读取2500B 而不是1500B 应该是正常的。