摘要: 在服务端中,listen() 只是让套接字进入监听状态,并没有真正接收客户端请求,listen() 后面的代码会继续执行,直到遇到 accept()。accept() 会阻塞程序执行,直到有新的请求到来。 socket结构体不仅仅记录了本地的IP和端口号,还记录了目的IP和端口。 服务器端使用 ac 阅读全文
posted @ 2021-12-19 20:32 Clovran-Wong 阅读(27) 评论(0) 推荐(0) 编辑
摘要: 常见 I/O 模型 同步阻塞IO(Blocking IO):用户线程通过调用系统调用read发起IO读操作,由用户空间转到内核空间。内核等到数据包到达后,然后将接受的数据拷贝到用户空间,完成read操作。整个IO请求过程,用户线程都是被阻塞的,对CPU利用率不够 同步非阻塞IO(Non-blocki 阅读全文
posted @ 2021-12-19 19:34 Clovran-Wong 阅读(208) 评论(0) 推荐(0) 编辑
摘要: new & delete 过程 当我们使用关键字 new 在堆上动态创建一个对象A时,比如 A* p = new A() ,它实际上做了三件事: 1.向堆上申请一块内存空间(做够容纳对象A大小的数据)( operator new ) 2.使用 static_cast 进行类型转换 3.调用构造函数 阅读全文
posted @ 2021-12-19 17:07 Clovran-Wong 阅读(350) 评论(0) 推荐(0) 编辑