您现在的位置是:首页 >技术教程 >TCP流式服务的特点网站首页技术教程
TCP流式服务的特点
简介TCP流式服务的特点
TCP流式服务的特点
当我们执行send();把hello发送到发送缓冲区,当我们再一次执行send();的时候,把abc也发送到发送缓冲区中,此时我们已经分不清楚这是分两拨写入的,如果发送缓冲区还没发送,我们第三次执行send();把test也写入到发送缓冲区了。
我们区分不出是分几次发送。
然后,把发送缓冲区的数据发送出去,每个报文的数据容纳量是有限的,缓冲区比较大,报文不一定把缓冲区的数据全部容纳进去。然后报文把数据发给对方的报文。
对方的报文把数据往对方的接收缓冲区一放。
对方在recv();的时候,分不清楚是分几次发送的。
一次读多少数据由自己的recv决定。这就是流式服的特点
通过3次send();发送数据有可能被对方recv();一次就读走了,这个叫粘包。
这个影响不影响看具体实际。
如果我要发3次,第一次发送物体的长,第二次发送物体的宽,第三次发送物体的高,需要对方返回体积。但是如果对方一次性接收了我发的3个数据。就发生了错误。
send();短时间执行完了,在recv();等着对方返回体积。但是对方才执行到第二行等着接收数据。这样就出问题了。这个时候粘包就有影响了。
风语者!平时喜欢研究各种技术,目前在从事后端开发工作,热爱生活、热爱工作。