请问在使用send函数的时候,我使用strlen()计算长度与使用recv返回值的字节大小有啥区别?
比如recv函数返回值为numsize,数组buf;那么send(sock,buf,numsize,0);send(sock,buf,strlen(buf),0);有啥区...
比如recv函数返回值为numsize,数组buf;那么
send(sock,buf,numsize,0);
send(sock,buf,strlen(buf),0);
有啥区别,网络数据recv接收到的是二进制吗?发的时候必须使用numsize字节大小吗? 展开
send(sock,buf,numsize,0);
send(sock,buf,strlen(buf),0);
有啥区别,网络数据recv接收到的是二进制吗?发的时候必须使用numsize字节大小吗? 展开
1个回答
展开全部
貌似strlen判断时发现字符串中止的标记就停了,所以有时strlen(buf)的大小和numsize不一样
更多追问追答
追问
谢谢 但是为什么有的时候使用两种方式都是对的 有的时候使用numsize就是错的 好奇怪的现象 难道发送的数据还要分几种 ?发送的数据可能是字符 或者二进制 十六进制?》???
追答
发送的数据其实就是buf地址下内存里的东西,看你的需要了,如果你的程序主要是聊天用的,那么传输的都是字符串,send的时候用strlen(buf)就节约空间了。 numsize有可能比strlen(buf)大啊,另外传送2字节或4字节整形的数据时候注意要注意字节序的转换。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询