郴州东江湖 2 日游

本和我丘约好端午节一起出去玩,结果因为买票太晚没买到票最后不得不放弃。

然后急中生智,来了一场说走就走的周末二日游。出去玩,何必等到端午呢?

郴州东江湖,很不错!

 

如何通过原始套接字修改 IP 数据包头

背景:我们的设备上有个链路探测的功能,会定时请求公网的某个 IP 地址,以探测网络是不是连通的。具体的做法是会使用 icmp 或 dns 探测远端服务器,看请求能否正常响应,如果有响应,则认为链路正常,否则则认为不正常,需要采取对应的措施。但是问题的现象是每隔一段时间后,探测包就收不到回复了,导致我们认为线路异 ... 阅读更多

企业网络应该如何规划以减少各种网络问题?

最近公司网络一直抽风,整个机房网络都不通,严重影响工作效率。后面花了大量人力解决问题后没多久,竟然又再次出现问题了。看着纷乱复杂的网络接线,我们也只是 「望洋兴叹」!因为参与了整个问题的处理过程 (我不是网关,仅参与了排查和分析过程),不由得对问题产生了一些思考和想法:企业网络到底应该如何规划才能避免不 ... 阅读更多

服务端的 socket 如何知道客户端是通过什么 IP 地址连接过来的

问题场景:服务器有多个网卡,分别绑定了地址 A 、地址 B 和地址 C,当客户端连接请求过来的时候,如何知道是从哪个 IP 地址请求过来的? 解决方案:服务端 accept 客户端的连接后,对这个新接受的 socket 进行 getsockname 就可以了。 示例代码: [crayon-69474fc40807b67618 ... 阅读更多

给 socket 分配随机端口

客户端的 socket 不需要手动执行 bind 绑定地址,但这不意味着客户端 socket 真的不需要绑定端口,实际上是内核它帮我们做了这个操作,在执行 connect 时,内核发现没有绑定端口,就会自动选择一个合适的端口绑定到 socket 。 当然这不说明我们不能对客户端 socket 执行 bind 操作,对于客户端 s ... 阅读更多

vector 中 emplace_back 方法的用途

在写代码的过程中,CLion 提醒我把 push_back 方法替换成 emplace_back 方法: emplace_back 函数的作用是减少对象拷贝和构造次数,是 C++11 中的新特性,主要适用于对临时对象的赋值。 在使用 push_back 函数往容器中增加新元素时,必须要有一个该对象的实例才行,而 empl ... 阅读更多

宏定义踩坑实战:嵌套调用宏定义

问题背景:在刷题的过程中,要使用 min 函数,但是线上 OJ 并没有这个函数。因为一时也想不起它到底属于哪个头文件,所以为了偷懒,顺手就写下了以下宏定义:

正常情况下这个宏定义是没有问题的,代码提交错误我也从没怀疑过它有问题。因为我认为自己 ... 阅读更多