
网络编程
文章平均质量分 72
linux网络编程的学习之路
sunximei1
这个作者很懒,什么都没留下…
展开
-
网络编程--优雅关闭连接
网络编程中,当一段发送完数据,想要关闭连接时,一般调用close().但close是不“优雅”的,首先看一下close()到底执行了什么。一、close以服务端调用close(sockfd)为例:使得sockfd的引用计数减1,当前进程不能再调用有关socket读写的API,TCP模块会继续将TCP发送缓冲区中的数据尽力发送至对端。若sockfd的引用计数为0(多进程fork会增加引用计数),则在TCP缓冲区数据发送完后会向对端发送FIN,进行四次挥手,TCP断开连接的过程;若引用计数不为0,则不会原创 2021-08-22 10:28:28 · 1379 阅读 · 0 评论 -
muduo基础库学习(一)
Timestamp类封装继承muduo::copyablemuduo::copyable 空基类,标识类,表示值类型;值语义:可以拷贝的,拷贝后,与原对象脱离关系对象语义:要么不能拷贝;要么可以拷贝,但拷贝后仍与原对象存在一定的关系,比如共享底层资源(要实现自己的拷贝构造函数)1. BOOST_STATIC_ASSERT我下载的版本里是没有这个宏的;但是实现都是一样的,使用boost库的static_assertstatic_assert(sizeof(Timestamp) == sizeof原创 2021-03-26 17:17:37 · 222 阅读 · 0 评论 -
Linux网络编程I/O模式设置总结(阻塞/非阻塞,recv参数等)
阻塞IO 和非阻塞IO: 在网络编程中对于一个网络句柄会遇到阻塞IO 和非阻塞IO 的概念, 这里对于这两种socket 先做一下说明: 基本概念: 阻塞IO:socket 的阻塞模式意味着必须要做完IO 操作(包括错误)才会返回。 非阻塞IO:非阻塞模式下无论操作是否完成都会立刻返回,需要通过其他方式来判断具体操作是否成功。IO模式设置: SOCKET 对于原创 2020-10-16 08:39:23 · 733 阅读 · 0 评论