服务器所用到的知识:
TCP/UDP,最基本的
并发——你可以选择使用select、poll,或者是多线程、多进程
如果你使用多线程,那么就必须使用同步技术——信号量、互斥体、条件变量的一种或几种,并且对于多线程技术,你还需要考虑使用进行线程分离与合并,
如果你使用了多进程,那么同步技术就不是你需要考虑的了,你需要考虑的是进程相关的问题了,你是使用fork还是vfork,你该如何处理客户端的请求,如何处理客户端断开连接后保证能够处理完数据并且没有僵尸进程产生,你还需要考虑高并发的问题
你发送接受数据的时候,采用何种方式,是阻塞的还是非阻塞的,还有连接超时、重传等问题
你是选择TCP还是UDP,如果选择UDP你可得忙了,需要你自己去进行重传验证,模拟TCP的三次握手,保证数据不会丢失,保证数据的有序性
还有其他很多需要你考虑的,以上都是指在Linux下的C++,本人对windows C++不了解
推荐书目:UNIX高级环境编程,UNIX网络编程,卷一。C++只不过是你使用这些技术的方式,不管你使用C还是C++,你都可以使用从这两本书中学习到很多有用的知识,但是不能保证你就可以写出高质量的服务器程序。
C语言的应用领域大致的分两大块:系统软件开发和应用软件开发。一、服务器端开发:很多游戏或者互联网公司的后台服务器程序都是基于C++开发的,而且大部分是linux操作系统,所以说,你需要熟悉linux操作系统及其在上面的开发,熟悉数据库开发,精通网络编程。
二、对性能要求严格的领域。一般对性能有严格要求的地方都是用C语言编写的,比如网络程序的底层和网络服务器端底层、地图查询等。
三、系统软件和图形处理。C语言具有很强的绘图能力和可移植性,并且具备很强的数据处理能力,可以用来编写系统软件、制作动画、绘制二维图形和三维图形等。
例如虚拟现实,这个领域一直在发展,目前VR眼镜比较火,需要大量基于这些的C++开发。
四、嵌入式设备开发。手机、PDA等时尚消费类电子产品相信大家都不陌生,其内部的应用软件、游戏等很多都是采用C语言进行嵌入式开发的。
五、游戏软件开发。游戏大家更不陌生,很多人就是由玩游戏而熟悉了计算机。利用C语言可以开发很多游戏,比如推箱子、贪吃蛇等。
六、数字计算。相对于其他编程语言,C语言是数字计算能力超强的高级语言。
除了上面这些以外,还有就是电子设备,就是什么手机软件,网络方面什么的,都是运用了C语言开发。
作为最底层的语言,使用非常广泛,深受广大工程师的喜好,它无处不在。所以前景越来越好。作为老牌编程语言,虽说没有就ja va语言应用广泛,但是未来依然具有较多的就业机会,随着物联网的全面发展,未来 C语言的应用场景依然比较多,而且由于 C语言有健全的语言生态和较快的运行速度,未来很长一段时间内依然是开发人员重要的选择。
目前 C语言主要的应用场景集中在三个领域,其一是操作系统领域其二是容器开发领域其三是物联网开发领域,目前物联网相关领域的开发场景还是比较多的,主要原因是物联网领域涉及到的行业比较广泛,需求量也比较大。
选择C语言的学习对自己的帮助很大。
其实做为一个开发者,有一个学习的氛围跟一个交流圈子特别重要这里我推荐一个C语言C++交流群583650410,不管你是小白还是转行人士欢迎入驻,大家一起交流成长。免费的公开课供你学习!
对于C语言程序员来说,如果想提升自身的岗位竞争力,最好走研发级程序员路线,因为随着Java、Python等编程语言的崛起,在应用级开发领域(Web开发、移动互联开发等),C语言的应用场景还是比较少的,所以相应的岗位需求量也并不大。当然,随着工业互联网的发展,未来传统产业领域应该会释放出一定数量的C语言开发岗位,但是由于Python目前也可以从事嵌入式开发,所以单纯掌握C语言的程序员往往并不会具有较强的岗位竞争力。
要想走研发级程序员路线,需要做好三方面技术的积累,其一是基础学科知识,重点在于数学和物理知识其二是计算机基础知识,重点在于操作系统知识和计算机网络知识其三是行业领域的专业知识,涉及到各种设备。
从当前行业发展的趋势来看,C语言程序员往智能装备方向发展是不错的选择,比如数控领域、车联网领域就有大量的机会。
欢迎分享,转载请注明来源:夏雨云
评论列表(0条)