uIP接收数据丢失

2019-08-14 17:23发布

实验52中的文件: tcp_client_demo.c 中

if (uip_newdata()) { if((tcp_client_sta&(1<<6))==0) //收到过数据并且已经处理/还未收到过数据 { if(uip_len>199) {    ((u8*)uip_appdata)[199]=0; }         strcpy((char*)tcp_client_databuf,uip_appdata);       tcp_client_sta|=1<<6;//表示收到客户端数据 }   }else if(tcp_client_sta&(1<<5))//有数据需要发送

上述中的字节复制:  strcpy((char*)tcp_client_databuf,uip_appdata);  如果中间某个字节的值为0x00,则后面的所有字节全部丢失。

由于有N多程序已经通过服务器端程序在用,所以不能修改服务器端程序。请教大师们: 如何从接收进来的字节完整低复制到 tcp_client_databuf 中???








友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
13条回答
codedemo
1楼-- · 2019-08-16 13:45
codedemo 发表于 2017-1-3 21:14
我也遇到类似问题, 发送16进制数据 遇到 0X00 后面的数据都丢失了。具体怎么修改,没找到要改的地方,求具 ...

赋值部分的函数要改,原先用的是针对字符串的函数,遇到00会自动结束的

一周热门 更多>