网络编程
文章平均质量分 84
fpcc
行之苟有恒,久久自芬芳!
展开
-
LinuxPTP的安装与应用
在实际的开发中,有时候儿需要两个设备的时钟同步,而且要求的精度相对较高。那么解决这种同步的方式有很多种,比较常见的就包括本文提到的IEEE1588标准协议。这个协议早期是在工业上应用的,后来才引入到了以太网中。在实际的开发场景中,多是在嵌入式中使用,毕竟一般也是硬件对时钟有很强的同步需求。而在更上层的软件上,一般底层做好时钟同步,而其本身只需要用就可以了。不过为了同步的快捷和方便,嵌入式中对同步往往不会是在以太网的全协议栈上进行即更多可能是在链路层等中直接进行时钟的同步(可能由硬件实现)。原创 2024-09-07 19:08:35 · 713 阅读 · 0 评论 -
c++应用网络编程之八SOCKET探究
我们分析完成了一般网络通信的原理和相关的IO通信的机制,已经基本明白了网络通信到底是怎么一回事,以及其相关的难点和重点。国内的教科书往往有一个重要的问题,就是从来不连贯的讲述一个知识点,而是将这些知识点打乱并且乱序讲解。这样做很难让一个人把网络通信的相关知识融会贯通。换句话说,基本上靠自觉把相关的体系建立起来的可能性极小。这也是本系列一开篇并没有像传统的书本把网络基础知识大讲一通,然后再搞几个IO模型举几个例子,基本上这书就过去了。原创 2024-09-01 13:56:45 · 1336 阅读 · 3 评论 -
c++应用网络编程之七基于线程的模式
面对问题,最主要的是分析问题产生的原因,找出解决的方法,实现解决的过程即分析问题,解决问题,验证结果。如果没有一套理论体系来支持,那么只能是尝试,反复不断的尝试或者说有经验者在经验的指导下的尝试。如果是科学研究碰触到的全新的领域,如此做法,未尝不是一种好的办法。但如果是在既有的知识体系中,再做如此行为,就有些盲目努力的感觉了。时事不同,则指导思想不同。与时俱进,实事求是罢了!原创 2024-08-17 11:13:28 · 471 阅读 · 3 评论 -
c++应用网络编程之六事件驱动的模式
很多学习网络编程的都是从SOCKET开发开始,一点点的扩展,然后才考虑各种机制、模型等。这就无法从整体上进行网络编程的把控。一开始就陷入了细节的泥潭。本系列文章一开始先从宏观上对网络编程进行分析说明,然后再开始一个个细节的网络知识的学习,这样就更好的知道了各种编程模式的适应性。更容易理解对网络编程的细节的处理的不同导致的适应场景的不同。一个是无目的的学习,一个是有放矢的学习。见仁见智吧。原创 2024-07-28 11:09:53 · 552 阅读 · 2 评论 -
c++应用网络编程之五Windows常用的网络IO模型
在Windows平台上,网络高并发的开发,重点以游戏居多。其它的当然也可以做,毕竟IOCP可不是白给的。其实游戏行业是一个非常好的方向,开发者如果有兴趣的话可以深入的学习研究。当人们吃饱饭的时候儿,精神食粮就提到了必须的日程上来。至于游戏对青少年的影响,就看大环境了。已经好多年不在Windows上进行编程了,以后的网络编程重要分析也是以类Linux平台为主。原创 2024-07-21 13:02:43 · 649 阅读 · 1 评论 -
c++应用网络编程之四Linux常用的网络IO模型
实事求是,与时俱进,理论联系实际,实践是检验真理的唯一标准…,这些理论每个人可能都会脱口而出。但真正的应用环节呢?可能绝大多数人会有意无意的找各种借口,陈陈相因,因循守旧,更别提创新意识了。只有在实践中深入分析掌握了现有技术的优劣,才可能知晓应用场景下的各种技术不足,才可能产生创新意识。网络编程中这种例子特别多(如io_uring,dpdk),毕竟实际应用的在不断提高对网络技术的要求。而更可怕的是,这种要求不但没有降低还在不断的提高。原创 2024-07-20 10:49:21 · 724 阅读 · 1 评论 -
c++应用网络编程之三用户态和内核态
计算机初始是没有什么用户空间内核空间之说的。这两个是从有了OS之后才出现的。这两个概念本来属于操作系统的相关概念,为什么拿到网络编程之中进行介绍呢?最主要的原因在于,网络编程是少有几个在开发者中经常遇到用户态和内核态显示交互的场景。那么为什么会有用户空间和内核空间的划分呢?也很简单。首先弄明白一件事,编程的主要目的是什么?是通过控制计算机的CPU来处理各种IO或相关操作来达到某种需求。而实际情况是,不管是CPU还是各种硬件或者IO操作等,其具有相当的专业性和复杂性,这就无形中为编程处理立起了一道无形墙。原创 2024-07-14 08:46:25 · 680 阅读 · 2 评论