linux socket 接收问题

send完后接收时 用recv返回值判断接收到了54个字节,与TCP调试助手显示的一样,但是从接收buf里去读数据却没有,打印buf也是空的,

 ret=send(sockfd,(char*)&send_buf,7+num_len,0);
 if(ret<0){printf("CODE:7 send Maintain tel error!\n");return(-1); }
 ret=recv(sockfd,rcebuf,128,0);
 if(ret<0){printf("CODE:6 request TEL data error!\n");return(-1);}
 printf("tel_len:%d\n",ret); //可以打印出54 说明接收到数据了
 printf("rcebuf:%s\n",rcebuf); //这里打印为空
 fd=open("/config/a.txt",O_RDWR);
 write(fd,rcebuf,128);
 用TCP调试助手接收也正确,
 ![图片说明](https://img-ask.csdn.net/upload/201702/26/1488052094_779202.png)

图片说明

贴下rcebuf的定义吧

解决了,是服务器端发过来的数据没有终结符,而我却用 s%打印所以没有输出!!