U3D服务器端开发知识点总结

来源:互联网 发布:赛门铁克软件 编辑:程序博客网 时间:2024/05/21 11:15

U3D服务器端开发知识点总结

写在前面:  这篇文章会比较杂,针对服务器端遇到的问题或比较重要的知识点,搞清楚了之后加入自己的理解记录下来,也就是我自己的一些个知识点总结笔记。

一、 TCP/IP三次握手,四次挥手:

TCP/IP协议 三次握手与四次挥手

上面这篇文章就介绍的很清楚了,我说一下自己的理解,帮助记忆:

  1. TCP三次握手:

    • 客户端说:服务器,我的资源准备就绪了,我要来连接你;
    • 服务器端答:OK,我允许你连;我这边资源也准备就绪了,等你来激活我;
    • 客户端答:OK,我来了激活你了,我们建立连接成功。
  2. TCP四次挥手:

    • 客户端说:我要断开连接了,我以后都不会再向你发数据了;
    • 服务器端答:OK。不过我还有东西要向你发,你等着;
    • 服务器端说:我的数据也传完了,我以后也不会再向你发数据了;
    • 客户端说:OK。那我们就say goodbye吧。

二、 select/poll/epoll的区别:

select、poll、epoll之间的区别总结

网上总结也是很多的,我根据自己多年使用经验,说下自己的理解:

  1. select:
    相比较于普通轮询来说,其实是一种无差别的轮询,但是是基于IO多路复用的基础上的,这是什么意思呢,就是说,select的轮询是在加入到FD集里面的描述符进行无差别轮询。而且每次select都会做用户空间到内核空间的数据拷贝,开销大。
    select支持默认的fd数量为1024个。

  2. poll:
    和select相似,比较而言,poll的fd是靠链表管理,没有fd数量限制。但是有个“水平触发”的问题,如果报告了fd后,没有被处理,那么下次poll时会再次报告该fd。也存在开销大,拷贝多的问题。

  3. epoll:
    这个就真的是基于事件来触发了,哪个fd,或者哪些fd有数据触发,那么就向内核报告一次。通知具体callback来处理。

三、服务器端高并发、海量数据、负载均衡、容错处理、内存调优等技术,需要学习总结。

好了,后面遇到问题了再慢慢补充,或者新起一篇文章。前两天搞U3D在Mac OS上面的模拟器运行游戏,花了不少时间。

PS:
我是从嵌入式转到游戏开发的,后面是想要做游戏、影视VR。三年多的嵌入式开发经验,给自己积累了大量的底层知识,而且我本人也学习过网络协议、UG建模、Web开发。Linux服务器端就更不在话下了。知识面很广。现在学起U3D、计算机图形学、Shader有关知识也算快速通透。但是讲真,时间太不够用了,知识框架搭建起来了之后,要学习和掌握的东西实在太多。而且不能猴子掰包谷,要稳扎稳打,学习之后要多总结啊,所谓好记性不如烂笔头。
接下来就要准备笔试有关的东西了,也是一大堆要去啃碎,消化掉的骨头。讲真,你要我现在去笔试,对上刚毕业的学生,基本上没啥胜算。工作经验,就是在实战中摸爬滚打啊,奈何笔试这关也是要去过,花点时间搞吧,自勉吧!

0 1