close()和shutdown()的区别
- close() 先关闭文件描述符,如果关联当前socket的所有文件描述符都关闭,则关闭socket信道。
- shutdown() 直接关闭socket信道,需要另外调用close()关闭文件描述符。
sendfile()
将文件内容直接发送到socket上。避免了数据拷贝。
TCP_CORK
将两次发送的数据放到一个缓存中一起发送。类似数据库操作的事务
。
optval = 1;
setsockopt(sockfd, IPPROTO_TCP, TCP_CORK, sizeof(optval)); //开启事务
send();
send();
...
optval = 0;
setsockopt(sockfd, IPPROTO_TCP, TCP_CORK, sizeof(optval));//关闭事务 发送数据