annysky 发表于 2019-8-27 23:07:47

关于LWIP(LAN8720)网络发送数据的问题

在做系统测试的时候发现,LWIP(LAN8720)发送十六进制数据时,当发送的数据中有0x00时,网络就判断一串数据结束啦。
例如,发送数据为:aa 55 05 00 00 00 03 00 05 00 12 55 aa,通过调试发送,网络发送的数据只有aa 55 05,后面的数据都没有发送。
意思就是遇到0x00,网络就认为是空数据。


现在的疑问就是,如果我要发送数据0,怎么办呢?
如果发送两个字节的数,例如发送数字3,十六进制为00 03,那怎么发送呢?


希望能够得到解答,急~~

wbeast 发表于 2019-8-27 23:07:48

使用write函数,不会出现上述情况啊,而且write函数是有数据长度参数的

toofree 发表于 2019-8-28 01:51:32

不能吧,应该是可以的。除非你发送的是字符串,字符串是以00为结束的。

tanic 发表于 2019-8-28 10:02:47

LAN8720可不会帮你判断00就停止,肯定是你的代码哪里把00自己处理了;P

你若安好_清风徐来 发表于 2019-8-28 16:26:35

数据处理问题把   

annysky 发表于 2019-8-30 11:22:43

非常感谢大家的解答,问题已经解决。我发送的时候,使用strlen来判断发送数据的长度和申请内存。按道理应该按字节来进行申请的。我把strlen和sizeof两个弄混淆啦
页: [1]
查看完整版本: 关于LWIP(LAN8720)网络发送数据的问题