Golang goland配置proto文件搜索路径 默认情况下,goland(jetbrains家的软件:idea、pycharm、phpstorm以及webstorm都是一样)安装protobuf插件后只会在一个特定的库路径下搜索proto文件。如果... 07月25日2 阅读全文
C/C++ C++文件输入输出流fstream的基本用法 一、文件流 C++的IO类中定义了三个文件读写流fstream、ifstream以及ofstream,它们都继承于相同的父类istream,通过不同的实现以实现不同的文件流操作。 三者的区别为: if... 12月26日评论 阅读全文
C/C++ using指令和using声明的区别 使用形式: using指令(using directive)的使用形式为using namespace std。 using声明(using declaration)的使用形式为using std::... 11月07日评论 阅读全文
C/C++ C++11中const_cast的真实使用场景 一、const和成员函数的故事 const的用途有以下几种: 修饰全局、局部、成员变量 修饰成员函数 修饰变量的时候const限制了变量在整个程序运行期间都是不能修改的,而修饰成员函数的时候限制函数内... 10月19日1 阅读全文
C/C++ C++11中的override和final关键字 一、前言 昨天在公司做代码扫描,发现很多类似以下的代码都产生了告警,导致扫描不通过: 不通过的原因是:同时使用virtual和override关键字来修饰成员函数,virtual关键字是多余的,要删掉... 10月17日1 阅读全文
编程语言 如何通过原始套接字修改IP数据包头 背景:我们的设备上有个链路探测的功能,会定时请求公网的某个IP地址,以探测网络是不是连通的。具体的做法是会使用icmp或dns探测远端服务器,看请求能否正常响应,如果有响应,则认为链路正常,否则则认为... 06月05日评论 阅读全文
C/C++ 服务端的socket如何知道客户端是通过什么IP地址连接过来的 问题场景:服务器有多个网卡,分别绑定了地址A、地址B和地址C,当客户端连接请求过来的时候,如何知道是从哪个IP地址请求过来的? 解决方案:服务端accept客户端的连接后,对这个新接受的socket进... 05月09日评论 阅读全文
C/C++ 给socket分配随机端口 客户端的socket不需要手动执行bind绑定地址,但这不意味着客户端socket真的不需要绑定端口,实际上是内核它帮我们做了这个操作,在执行connect时,内核发现没有绑定端口,就会自动选择一个合... 04月25日评论 阅读全文
C/C++ vector中emplace_back方法的用途 在写代码的过程中,CLion提醒我把push_back方法替换成emplace_back方法: emplace_back函数的作用是减少对象拷贝和构造次数,是C++11中的新特性,主要适用于对临时对象... 04月06日1 阅读全文
C/C++ 宏定义踩坑实战:嵌套调用宏定义 问题背景:在刷题的过程中,要使用min函数,但是线上OJ并没有这个函数。因为一时也想不起它到底属于哪个头文件,所以为了偷懒,顺手就写下了以下宏定义: 正常情况下这个宏定义是没有问题的,代码提交错误我也... 04月06日1 阅读全文