Liangjf

The darkest hour is that before the dawn.

对socket的思考

为什么有监听socket和连接socket,为什么产生两个socket

为什么有监听socket和连接socket,为什么产生两个socket 先看一半的socket建立连接的双方的过程: 客户端: socket()—->创建出 active_socket_fd (client_socket_fd) bind()—>把active_socket_fd与ip,port绑定起来 connect()—>client_socket_fd 主动请...

go命令

go的三个常用命令

go的三个常用命令 go run go build go install 命令源码文件:含有 main函数 的文件 库源码文件:不包含 main函数 的文件, 主要用于编译成静态文件.a供其他包调用 构建:编译 安装:编译+链接 go run : 用于对命令源码文件做 编译+链接 操作产生 临时 的可执行程序并执行. 一般用于调试程序 go build : 用于测试编译包 对 ...

网络协议

出了网关,网络包的经历

出了网关,网络包的经历 数据包经过路由从局域网出去后,就变得复杂起来。数据包的传递会面临各种选择,比如最重要的路径选择。 路径选择就是选择最短路径,也即最优路径来传递网络包到目的地。 在现在网络世界,个人发出的各种网络包的传递一般经过n多路由,每个路由就相当于关卡,有一些策略算法来保证网络包的正常传输。 所以这里涉及到路由的配置。路由拥有一张路由表。一张路由表中会有多条路由规则。每一...

网络协议

网络为什么分层

网络为什么分层 在自然世界中,分层无处不在。大到社会阶层,小到细胞层次结构。 为什么会这样?因为复杂的事物组成复杂,完成的功能复杂,把所有的步骤都放到一个层次处理,那么这一层就会变得越来越复杂,耦合度非常高,不容易理解和对事物的解剖,就不能分析出事物的规律。 分层需要分得对。层次间的分界线虽然无须有非常清晰的界限,但一定要有内在的层次划分根据。 对于软件世界来说,某大牛(太大大牛,记...

并发编程

关于std::thread线程传参的思考

关于std::thread线程传参的思考 最重要要记住的一点是:参数要拷贝到线程独立内存中,不管是普通类型、还是引用类型。 对于传递参数是引用类型,需要注意: 1.当指向动态变量的指针(char *)作为实数,string const&作为形参,在传递的时候先人为增加动态变量转换string的操作。 原因:std::thread传递参数是直接拷贝一份实参到...

并发编程

c++中关于std::thread的join的思考

c++中关于std::thread的join的思考 std::thread是c++11新引入的线程标准库,通过其可以方便的编写与平台无关的多线程程序,虽然对比针对平台来定制化多线程库会使性能达到最大,但是会丧失了可移植性,这样对比其他的高级语言,可谓是一个不足。终于在c++11承认多线程的标准,可谓可喜可贺!!! 在使用std::thread的时候,对创建的线程有两种操作:等待/分离,也...

go包引用

golang包引用解析

golang包引用解析 环境变量配置如下: GOROOT—-[C:\Go] GOPATH—-[F:\workspace\go_home] vs code配置如下: F:\workspace\go_home 是总的golang工作空间, 在下面建立两个必须的目录 src(必须[F:\workspace\go_home\src]), pkg(必须[F:\workspace...

排序算法

排序算法之归并排序

排序算法之归并排序 1.归并排序介绍 归并排序的核心思想是分治法,是建立在归并操作上的一种有效的排序算法。通过递归的对半拆分成最小单元(一个元素),然后通过回溯的比较合并,构成整个归并的排序。 分治法:将原问题分解为一些规模较小的相似子问题,然后递归解决这些子问题,最后合并其结果作为原问题的解。 算法步骤: 1.把数组递归拆分成N个最小数组单元 2.回溯地对每个组进行合并排序...

Ntrip协议

使用流程及服务器实现架构

Ntrip协议 在RTK接收机中,有多种方式获取到差分数据:电台、挂外串口、网络等。其中网络方式适合在有网络基准站的地区,省掉携带多一台RTK接收机来完成工作。 CORS是网络基准站,通过网络收发GPS差分数据。用户访问CORS后,不用单独架设GPS基准站,即可实现GPS流动站的差分定位。 访问CORS系统,就需要网络通讯协议。NTRIP是CORS系统的通讯协议之一。 下面看整个访问...

排序算法

选择排序

排序算法之选择排序 1.选择排序介绍 选择排序分为三种,直接选择排序、树形选择排序、堆排序。直接选择排序和堆排序是不稳定排序,树形选择排序是稳定排序。在这里介绍的是直接选择排序。其他的后面再分析。 直接选择排序算法思想:第一趟从n个元素的数据序列中选出关键字最小/大的元素并放在最前/后位置,下一趟从n-1个元素中选出最小/大的元素并放在最前/后位置。以此类推,经过n-1趟完成排序。 2...