socket read返回问题
时间:2011-05-19
来源:互联网
作者: MagicxiaoZ 发布时间: 2011-05-19
接受多少,返回值就多少
所以,TCP接受要一直等到没有数据为止
作者: Harry_lyc 发布时间: 2011-05-19
tcp的发送是没有数据边界的,一次发送100个字节,有可能一次接受100个字节,也有可能100次,一次接受1个字节。
接受多少,返回值就多少
所以,TCP接受要一直等到没有数据为止
就是说继续阻塞等待剩下的80字节数据?
那接收端凭什么知道还有80字节数据没有到啊?
作者: MagicxiaoZ 发布时间: 2011-05-19
引用 1 楼 harry_lyc 的回复:
tcp的发送是没有数据边界的,一次发送100个字节,有可能一次接受100个字节,也有可能100次,一次接受1个字节。
接受多少,返回值就多少
所以,TCP接受要一直等到没有数据为止
就是说继续阻塞等待剩下的80字节数据?
那接收端凭什么知道还有80字节数据没有到啊?
说错了,通过什么判断出还有60字节数据没有到呢?
谢谢诸位//
作者: MagicxiaoZ 发布时间: 2011-05-19
引用 2 楼 magicxiaoz 的回复:
引用 1 楼 harry_lyc 的回复:
tcp的发送是没有数据边界的,一次发送100个字节,有可能一次接受100个字节,也有可能100次,一次接受1个字节。
接受多少,返回值就多少
所以,TCP接受要一直等到没有数据为止
就是说继续阻塞等待剩下的80字节数据?
那接收端凭什么知道还有80字节数据没有到啊?
说……
作者: guosha 发布时间: 2011-05-19
作者: ilyz5609 发布时间: 2011-05-19
如果是阻塞等待的话,凭什么知道还有没收到的数据呢?
谢谢
所以用TCP的自己定义的消息需要加一个头,定义自己的消息体长度是多少,来判断还有多少数据没有收完。
引用 3 楼 magicxiaoz 的回复:
引用 2 楼 magicxiaoz 的回复:
引用 1 楼 harry_lyc 的回复:
tcp的发送是没有数据边界的,一次发送100个字节,有可能一次接受100个字节,也有可能100次,一次接受1个字节。
接受多少,返回值就多少……
作者: MagicxiaoZ 发布时间: 2011-05-19
{
//数据放入缓冲区
}
直到while结束循环,可以认为一个接受完成了
作者: Harry_lyc 发布时间: 2011-05-19
作者: justkk 发布时间: 2011-05-19
热门阅读
-
office 2019专业增强版最新2021版激活秘钥/序列号/激活码推荐 附激活工具
阅读:74
-
如何安装mysql8.0
阅读:31
-
Word快速设置标题样式步骤详解
阅读:28
-
20+道必知必会的Vue面试题(附答案解析)
阅读:37
-
HTML如何制作表单
阅读:22
-
百词斩可以改天数吗?当然可以,4个步骤轻松修改天数!
阅读:31
-
ET文件格式和XLS格式文件之间如何转化?
阅读:24
-
react和vue的区别及优缺点是什么
阅读:121
-
支付宝人脸识别如何关闭?
阅读:21
-
腾讯微云怎么修改照片或视频备份路径?
阅读:28