一文彻底搞通TCP之send & recv原理 (5)

在进行TCP协议传输的时候,要注意数据流传输的特点,recv和send不一定是一一对应的(一般情况下是一一对应),也就是说并不是send一次,就一定recv一次就接收完,有可能send一次,recv多次才接收完,也可能send多次,一次recv就接收完了。TCP协议会保证数据的有序完整的传输,但是如何去正确完整的处理每一条信息,是开发人员的事情。

服务器在循环recv,recv的缓冲区大小为100byte,客户端在循环send,每次send 6byte数据,则recv每次收到的数据可能为6byte,12byte,18byte,这是随机的,编程的时候注意正确的处理。

7参考

https://slidetodoc.com/network-applications-user-socket-bsd-sockets-kernel-sock/ https://www.programmersought.com/article/819124112/ https://www.programmersought.com/article/749525105/ https://www.fatalerrors.org/a/0dl00z0.html https://blog.csdn.net/w839687571/article/details/44409355 https://linux-kernel-labs.github.io/refs/heads/master/labs/networking.html https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/net/ipv4/tcp.c#n1581

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/zwfppx.html