C++服务器 (一) 服务器概述

版权声明:本文为博主原创文章,遵循 CC 4.0 by-sa 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/Hanani_Jia/article/details/81298139

  最近从学长那里拿到了一些C++服务器的学习视频,通过看视频之后简单的对自己看过的视频进行一个小总结。

  首先,简单介绍一下,现在很多语言都可以用来进行服务器编程,例如:python、java、ruby等等,但是我们这里用的是C++,为什么要用C++来编写,这里最重要的就是效率。效率可以从两方面来看,一个是运行效率一个是开发效率,运行效率就不用多说,除了汇编语言外,运行效率最高的就是C语言和C++了。甚至在某些方面来看C++的运行效率甚至比C语言还要高。开发效率来看,学习C++的大家都知道C++的开发很累,很慢,其他语言几十行就可以解决的问题,C++可能就需要几百行甚至可能上千行。但是在C++发展到现在C++11甚至C++14的版本,已经有了很大的提升,相对来说C++已经具备了两种效率。

  在服务器这方面我也是个纯新手,什么都不了解,在服务器方面不仅仅是需要C++的基础十分牢固还需要有TCP/IP、Socket方面的知识。所以会通过博客和笔记一点点补这些知识。服务器方面和其他不一样,服务器方面的基础要十分的扎实,这样的话才能让自己以后编写起来更加的方便,这次项目的环境在我们的linux ubuntu下开发的。之后我也会编写博客来给大家写环境的搭建步骤。

  C++和java、python等有一个很大的区别,就是第三方库,比如我们现在要进行一个服务器方面或者说图形化方面等等,在你安装环境的时候都已经自带好了的第三方库,我们都可以直接使用,但是C++和C语言来说只在一些十分必要的库才有提前准备好,所以一些很多大公司都会有一些自己的库,只供自己公司内部人调用。我们这次编写的时候用的都是一些开源的标准的库,并不存在说我在这里可以使用在其他时候会出现问题的情况。主要是用到了boost库。

  因为我也是个初级小白,没有任何知识,所以在前期我会把所有代码一行一行分析出来,打实基础。

  下边我们进行一个小思考,假如你现在进入了一个公司,接受了一个类似QQ的项目,而你负责的是服务器方面,那你应该从哪里下手,应该如何实现如何开始呢?看到题目我也没有任何的想法,没有任何思路,服务器并没有说可以单纯的通过学习视频来实现,这就好像我们可以学会C语言C++,但是和某些大佬比起来你的功能是实现了, 但是你的代码的可读性效率等等都还需要有很大的提升,服务器方面也是,如果要写出来好的服务器,优秀的服务器还是有很长很长的路要走。

  今天对服务器只是一个简单的介绍,第一个视频结束前老师留了一个C++编程方面的题目,是将一个单链表进行逆置,也就是说我传入的链表是1-2-3,通过程序将链表数据变为3-2-1。之前自己就写过一篇关于这个的博客。

https://blog.csdn.net/hanani_jia/article/details/79751537 这是上次博客的地址,这里我再简单的介绍一下链表的逆置。

  逆置有两种方法, 一种是特别好理解的我们拿到一个链表之后,再创建一个新的节点,然后每次从旧链表中找到最后一个数据,将最后一个数据插入到新链表的尾部,但是这种情况的时间复杂度是很高的,因为这是一个单项链表并不能保存你的前一项数据或者是直接找到链表中最后一个元素,所以每次都需要找到最后一个元素。每次都需要将当前列表的长度遍历一遍。

另一种是简洁但是不好理解的一种方式就是三指针方法。通过三个指针来分别保存三个相邻的数据,然后保证你将第二个数据的next指向第一个数据的同时,而不会使得第二个数据之前的next丢失,这样不断的将三个指针向后移动,操作第二个数据的指针进行变化,知道第二个数据是最后一个数据,也就是第三个指针变成空的时候停止移动,此时的链表头就是第二个指针。

 

  我还没有接触过公司项目,所以也一直好奇公司里的代码是不是就是我们现在学的if else等等简单语句来组成的,就比如的我听到服务器根本不知道从何下手根本不知道要怎么做,但是通过第一个视频老师留下的思考,就是链表的逆置,让我感觉到,其实任何程序都是通过你学过的简单的知识简单的语法来组成的,只要自己一点点来补充自己的基础知识,打实基础就可以。之后我会尽量每天给大家介绍服务器方面的学习知识。

展开阅读全文

没有更多推荐了,返回首页