socket发送十六进制数据遇到0x00,后面的数据收不到

送分小仙女□ 提交于 2019-11-30 08:46:11

问题,使用socket发送数据时,char数组中遇到0x00处,后面的数据都不再发送,收到的数据从0x00处开始,后面都为0x00。

原因:在发送数据调用send函数之前,将要发送的数据拷贝到buf中,使用的字符串拷贝函数strcpy,strcpy(buf,recvbuf),使用此函数拷贝后,遇到0x00,就认为数据结束了,字符串结束了,后面的数据就不再发送,因此收到的数据,只要出现0x00之后的都为0x00。

解决:拷贝数据应使用memcpy。

memcpy(buf,recvbuf);

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!