2021年4月21日

摘要: 处理 SIGPIPE 在网络编程中经常会遇到SIGPIPE信号,默认情况下这个信号会终止整个进程,当然你并不想让进程被SIGPIPE信号杀死。我们不禁会这样思考: 在什么场景下会产生SIGPIPE信号? 要怎样处理SIGPIPE信号? SIGPIPE产生的原因是这样的:如果一个 socket 在接收 阅读全文
posted @ 2021-04-21 19:33 tycoon3 阅读(2504) 评论(0) 推荐(0)
摘要: 如果我们在调用accept函数返回之前, 该客户端TCP发送了一个RST(复位)。在服务器中, 表现为该连接仍在TCP队列中, 等待服务器进程调用accept的时候RST到达。此时返回的套接字是一个已连接,但是却有接受了RST的套接字。 模型图如下: #include <stdio.h> #incl 阅读全文
posted @ 2021-04-21 17:49 tycoon3 阅读(127) 评论(0) 推荐(0)
摘要: 阅读全文
posted @ 2021-04-21 17:09 tycoon3 阅读(32) 评论(0) 推荐(0)
摘要: 1、前言 昨天总结了一下Linux下网络编程“惊群”现象,给出Nginx处理惊群的方法,使用互斥锁。为例发挥多核的优势,目前常见的网络编程模型就是多进程或多线程,根据accpet的位置,分为如下场景: (1)单进程或线程创建socket,并进行listen和accept,接收到连接后创建进程和线程处 阅读全文
posted @ 2021-04-21 17:03 tycoon3 阅读(1036) 评论(0) 推荐(0)
摘要: #include <iostream> #include <memory> #include <thread> #include <chrono> #include <mutex> struct Test { Test() { std::cout << " Test::Test()\n"; } ~T 阅读全文
posted @ 2021-04-21 15:08 tycoon3 阅读(140) 评论(0) 推荐(0)
摘要: weak_ptr是为配合shared_ptr而引入的一种智能指针来协助shared_ptr工作,它可以从一个shared_ptr或另一个weak_ptr对象构造,它的构造和析构不会引起引用计数的增加或减少。没有重载 *和 -> 但可以使用lock获得一个可用的shared_ptr对象 weak_pt 阅读全文
posted @ 2021-04-21 14:50 tycoon3 阅读(238) 评论(0) 推荐(0)
摘要: Rvalue Reference 右值引用 当赋值操作的右边是右值(rvalue),左边的对象不需要特意分配内存去存放这个拷贝(copy),而可以搬移(move)右边对象的资源。 用于解决不必要的拷贝和实现完美转发(perfect forwarding)。 Move Semantics 移动语义 m 阅读全文
posted @ 2021-04-21 12:08 tycoon3 阅读(701) 评论(0) 推荐(0)

导航