我不知道,反正就是调用socket 那一套, send 发送, recv 接收。昨天你们说了之后我还以为是不是我接收端的buff整的太小了,今天又试了一下,send 这端是不管的,一下发出去,recv(connction, buffer, recv_size, 0) 这个buffer,和recv_size 都搞大了,结果还是分片呀,比如send一个几万字节的buffer,recv函数一次可能只接收了数千个字节,需要调N次才能接收完
请问要怎么样一次发送一次接收?
【 在 milksea 的大作中提到: 】
: tcp给上层调用者根本没有片的概念。传输数据必须自己写长度或分隔符来划分不同的消息。编程时收发操作和二进制文件读写是差不多的。
: 比如 asio::read 读 20 字节,可能内部一次读完,也可能内部 17 次读完,具体用了几个 ip 包是不可预料的,但你用起来就是一次调用,没收完就阻塞。
--
修改:confinement FROM 223.104.63.*
FROM 223.104.63.*