- 博客(11)
- 收藏
- 关注
转载 关于socket api的原子操作性和线程安全性的探究和实验测试(多线程同时send,write)
本文转载自:https://www.cnblogs.com/whuwzp/p/thread-safety-socket-send.html1. 概览1.1 起因自己写的项目里,为了保证连接不中断,我起一个线程专门发送心跳包保持连接,那这个线程在send发送数据时,可能会与主线程中的send冲突,因此我就想探讨一下socket api是否具有线程安全性。网上很多说法,但多是推测,于是我结合man pages、StackOverflow和大佬们的博客等资料,做了简单的实验测试一下,用事实说话。1.2 探
2020-05-22 22:51:17 2829 2
原创 C++ error: non-const lvalue reference to type
今晚看交流群的消息,看到大家在讨论一个有意思的问题:int array[5] = { 0 };int* const& p = array; //编译通过const int* &p = array; //编译失败//报错: error: non-const lvalue reference to type 'const int *' //cannot bind to a value of unrelated type 'int [5]'。//对类型“const int*”的非co
2020-05-16 23:45:38 7597
原创 Linux服务器开发要注意的SIGPIPE信号
SIGPIPE信号出现的原因:一个socket关闭后,仍然对它write两次,那么内核就会发送SIGPIPE信号给当前进程,而默认处理动作是终止进程。解决方法:用sigaction进行SIGPIPE信号的捕捉。写服务器程序,一定要对该信号进行处理。...
2020-05-16 17:21:35 310
转载 C++两个类互相引用的解决方法
问题描述:c++在使用过程中遇到两个类需要相互包含引用的问题解决办法:两个类的头文件之中,选一个包含另一个类的头文件,另一个头文件中采用class ;的申明形式,在实现文件中(.cpp)中包含头文件,如下所示:class A.h#include "B.h" class A{ int m; B b;}class B.hclass A; class B{int n; A *a;}B.cpp//在B.cpp中的文件包含A.h,否则不能调用成员a的任何内容#incl
2020-05-12 15:05:14 621
原创 Windows下Qt使用htons,htonl,ntohs,ntohl
pro文件加上:LIBS += -lws2_32源代码包含头文件:#include <WinSock2.h>
2020-05-11 11:57:08 4230
转载 EPOLLOUT分析
EPOLLOUT使用场景1: 对客户端socket只使用EPOLLIN(读)监听,不监听EPOLLOUT(写),写操作一般使用socket的send操作2:客户端的socket初始化为EPOLLIN(读)监听,有数据需要发送时,对客户端的socket修改为EPOLLOUT(写)操作,这时EPOLL机制会回调发送数据的函数,发送完数据之后,再将客户端的socket修改为EPOLL(读)监听3:对客户端socket使用EPOLLIN 和 EPOLLOUT两种操作,这样每一轮epoll_wait循环都会回调
2020-05-10 15:36:36 322
原创 CMake时指定编译器
SET(CMAKE_C_COMPILER “编译器绝对路径”)SET(CMAKE_CXX_COMPILER “编译器绝对路径”)
2020-05-08 21:32:31 3658
转载 CMake中链接库的顺序问题
原文链接:https://blog.csdn.net/lifemap/article/details/7586363cmake中链接库的顺序是a依赖b,那么b放在a的后面。例如进程test依赖a库,b库, a库又依赖b 库,那么顺序如下:TARGET_LINK_LIBRARIES(test a b)...
2020-05-08 16:37:30 31210
转载 Qt pro转CMake工程例子
原文链接:https://www.yuque.com/pikachuhy/cmake/cil1piQt pro配置去掉一些注释后QT += core guigreaterThan(QT_MAJOR_VERSION, 4): QT += widgetsTARGET = QtDemoTEMPLATE = appDEFINES += QT_DEPRECATED_WARNINGS...
2020-05-04 23:15:23 6174
原创 CMake通过正则表达式获取当前文件夹名称
string(REGEX REPLACE ".*/\(.*\)" "\\1" CURDIR ${CMAKE_CURRENT_SOURCE_DIR})
2020-05-04 23:00:16 2377
原创 vscode常用插件
1.汉化:Chinese,重启2.各种漂亮图标:vscode-icons3.左下角显示文件大小:filesize4.成对彩色括号:Bracket Pair Colorizer5.自动感知目录下的文件:Path Autocomplete6.自动纠正Python缩进:Python indent...
2020-05-04 21:46:54 144
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人