网络模型
- 一个线程一个eventloop
- 多个TCPServer和TCPClient可以共享同一个eventloop
文件传输
- 使用TcpConn::send(),send保证数据会发送给对方,send是非阻塞的(即使output buffer满了,也不会阻塞当前线程),send是线程安全的(消息不会混叠交织,多线程发送顺序不确定)
- 非阻塞网络编程中,发送消息由muduo完成,用户不需调用write或send等系统调用,因此TcpConn需要有output buffer
- send(const Slice&)可以发送string和char,send(Buffer)不用const引用,是因为函数可能用Buffer::swap交换数据,避免内存拷贝(类似右值引用)