tcp给上层调用者根本没有片的概念。传输数据必须自己写长度或分隔符来划分不同的消息。编程时收发操作和二进制文件读写是差不多的。
比如 asio::read 读 20 字节,可能内部一次读完,也可能内部 17 次读完,具体用了几个 ip 包是不可预料的,但你用起来就是一次调用,没收完就阻塞。
【 在 confinement 的大作中提到: 】
: pb没用过不熟?
:
: tcp本来就会分包啊,协议规定的数据帧容量限定的,一般默认1500字节的mtu(还要除去大概二十个字节的包头才能装用户数据),好像现在很多网络支持大的可以到9000还是多少来着,但终究也是有限的。然后系统的socket api收发的时候就按这个来,应用层需要自己组装数据的。这么多年过去了,这种麻烦的事情肯定有人帮我们做好,所以我就是要找一个方便的序列化库来帮我干这些事
: ...................
--
FROM 114.249.193.*