我知道有可能将多个数据包堆叠到要读取的缓冲区,并且长数据包可能需要多次发送尝试循环才能完全发送。但是我对这些案件有关包装的问题:发送和接收套接字(TCP/IP)
- 如果我打电话的recv(或任何其他(低电平)函数),当有多个数据包等待被读取,将它归还所有堆叠进入我的缓冲区或只有其中一个(或者如果我的缓冲区不足,则是第一个的一部分)?
- 如果我发送一个需要多次迭代才能完全发送的长包,它会算作单个包还是多个包?这基本上是一个问题,它是否表示包裹发送不完整?
当我想到网络套接字封装时,我想到了这些问题。特殊字符用于标记数据包的开始和结束,这种分类导致无法分离多个数据包。
P.S.所有的问题都是关于TCP/IP的,但欢迎您分享有关UDP的信息(答案)。