为什么要分离
send与recv如果在同一线程中, 如果send没有发送完数据, recv也不会接收到数这样会造成
整个程序 会一直等 send发完数据
为什么要定义一个缓冲区
如果send只发送 一个字节的数据(场景), 又不断不送了N多次, 那么send的压力会变得很大,
所以引出缓冲区
send 先要定时 定量发送数据
定量:给 send 定义一个发送缓冲区, 当要发送的数据 >= 缓冲区, 那么就发送当前缓冲区,
发送之后, 把没有发送完的数据, 再copy到缓冲 直到 当要发送的数据 >= 缓冲区 再发送
分离:
加一个消息队列来保存send要发送的数据, 让send在另外一个线程中执行
定时:
如上面定量, 如果量使终没有达到要求, 也会造成send一直不发数据, 所以要定时发送数据
(一般来说200ms ~ 1 s 都可以, 跟据需求);