请问在使用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字节大小吗?
展开
 我来答
格艺着0Z
2012-07-17
知道答主
回答量:16
采纳率:0%
帮助的人:4.3万
展开全部
貌似strlen判断时发现字符串中止的标记就停了,所以有时strlen(buf)的大小和numsize不一样
更多追问追答
追问
谢谢 但是为什么有的时候使用两种方式都是对的 有的时候使用numsize就是错的 好奇怪的现象 难道发送的数据还要分几种 ?发送的数据可能是字符 或者二进制 十六进制?》???
追答
发送的数据其实就是buf地址下内存里的东西,看你的需要了,如果你的程序主要是聊天用的,那么传输的都是字符串,send的时候用strlen(buf)就节约空间了。 numsize有可能比strlen(buf)大啊,另外传送2字节或4字节整形的数据时候注意要注意字节序的转换。
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式