U3D服务器端开发知识点总结
Posted nobcaup
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了U3D服务器端开发知识点总结相关的知识,希望对你有一定的参考价值。
U3D服务器端开发知识点总结
写在前面:
这篇文章会比较杂,针对服务器端遇到的问题或比较重要的知识点,搞清楚了之后加入自己的理解记录下来,也就是我自己的一些个知识点总结笔记。
一、 TCP/IP三次握手,四次挥手:
上面这篇文章就介绍的很清楚了,我说一下自己的理解,帮助记忆:
TCP三次握手:
- 客户端说:服务器,我的资源准备就绪了,我要来连接你;
- 服务器端答:OK,我允许你连;我这边资源也准备就绪了,等你来激活我;
- 客户端答:OK,我来了激活你了,我们建立连接成功。
TCP四次挥手:
- 客户端说:我要断开连接了,我以后都不会再向你发数据了;
- 服务器端答:OK。不过我还有东西要向你发,你等着;
- 服务器端说:我的数据也传完了,我以后也不会再向你发数据了;
- 客户端说:OK。那我们就say goodbye吧。
二、 select/poll/epoll的区别:
网上总结也是很多的,我根据自己多年使用经验,说下自己的理解:
select:
相比较于普通轮询来说,其实是一种无差别的轮询,但是是基于IO多路复用的基础上的,这是什么意思呢,就是说,select的轮询是在加入到FD集里面的描述符进行无差别轮询。而且每次select都会做用户空间到内核空间的数据拷贝,开销大。
select支持默认的fd数量为1024个。poll:
和select相似,比较而言,poll的fd是靠链表管理,没有fd数量限制。但是有个“水平触发”的问题,如果报告了fd后,没有被处理,那么下次poll时会再次报告该fd。也存在开销大,拷贝多的问题。epoll:
这个就真的是基于事件来触发了,哪个fd,或者哪些fd有数据触发,那么就向内核报告一次。通知具体callback来处理。
三、服务器端高并发、海量数据、负载均衡、容错处理、内存调优等技术,需要学习总结。
好了,后面遇到问题了再慢慢补充,或者新起一篇文章。前两天搞U3D在Mac OS上面的模拟器运行游戏,花了不少时间。
PS:
我是从嵌入式转到游戏开发的,后面是想要做游戏、影视VR。三年多的嵌入式开发经验,给自己积累了大量的底层知识,而且我本人也学习过网络协议、UG建模、Web开发。Linux服务器端就更不在话下了。知识面很广。现在学起U3D、计算机图形学、Shader有关知识也算快速通透。但是讲真,时间太不够用了,知识框架搭建起来了之后,要学习和掌握的东西实在太多。而且不能猴子掰包谷,要稳扎稳打,学习之后要多总结啊,所谓好记性不如烂笔头。
接下来就要准备笔试有关的东西了,也是一大堆要去啃碎,消化掉的骨头。讲真,你要我现在去笔试,对上刚毕业的学生,基本上没啥胜算。工作经验,就是在实战中摸爬滚打啊,奈何笔试这关也是要去过,花点时间搞吧,自勉吧!
以上是关于U3D服务器端开发知识点总结的主要内容,如果未能解决你的问题,请参考以下文章