用c++开发服务器端,需要学习哪些东西

用c++开发服务器端,需要学习哪些东西,第1张

服务器所用到的知识:

TCP/UDP,最基本的

并发——你可以选择使用select、poll,或者是多线程、多进程

如果你使用多线程,那么就必须使用同步技术——信号量、互斥体、条件变量的一种或几种,并且对于多线程技术,你还需要考虑使用进行线程分离与合并,

如果你使用了多进程,那么同步技术就不是你需要考虑的了,你需要考虑的是进程相关的问题了,你是使用fork还是vfork,你该如何处理客户端的请求,如何处理客户端断开连接后保证能够处理完数据并且没有僵尸进程产生,你还需要考虑高并发的问题

你发送接受数据的时候,采用何种方式,是阻塞的还是非阻塞的,还有连接超时、重传等问题

你是选择TCP还是UDP,如果选择UDP你可得忙了,需要你自己去进行重传验证,模拟TCP的三次握手,保证数据不会丢失,保证数据的有序性

还有其他很多需要你考虑的,以上都是指在Linux下的C++,本人对windows C++不了解

推荐书目:UNIX高级环境编程,UNIX网络编程,卷一。C++只不过是你使用这些技术的方式,不管你使用C还是C++,你都可以使用从这两本书中学习到很多有用的知识,但是不能保证你就可以写出高质量的服务器程序。

1、C语言可以做嵌入式开发。如51单片机、ARM等。

2、C语言可以写漂亮的界面。以windows开发为例,你可以学习《windows程序设计(第五版)》,学完就可以写出界面来。还有一些开源库界面库,例如soui也是用C写出来的。

3、C语言可以做服务器开发,现在的游戏服务器端大多都是C/C++开发的。《windows核心编程》里面的例子就是用C写的。

4、C语言可以写游戏。cocos2d—x就是C/C++写的。DirectX也是。

5、C语言可以写驱动程序。windows下各种硬件驱动都是C/C++写的。腾讯游戏保护软件(TP)也是驱动程序。

6、C语言可以写外挂。想学写外挂的童鞋们可以看看郁金香的外挂编程视频教程。

7、C语言可以做视频图片流媒体处理。有兴趣的朋友可以学习一下ffmpeg、live555、sdl等开源库。

8、C语言可以做网页和爬虫相关的编程。想了解的同学可以去看gsoap、libcur等相关开源库。

9、C语言可以进行黑客编程。配合汇编获取随机地址、调shellcode等。


欢迎分享,转载请注明来源:夏雨云

原文地址:https://www.xiayuyun.com/zonghe/174646.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-03-27
下一篇2023-03-27

发表评论

登录后才能评论

评论列表(0条)

    保存