30K面试服务器游戏开发岗位,你要找的答案都在这里!

507 阅读4分钟

前言

01 TCP 的核心意涵是什么?

TCP 是面向连接的可靠的传送协议。核心意涵就是面向连接与可靠,对于使用TCP socket而言我们要管理好socket的建立连接,断开连接等。同时对于业务逻辑而言TCP socket是可靠的不会丢包的,比如我发送ABCDE,这些数据包,不会出现丢包(ABDE)与乱序的情况(ACBED)。

02 为什么TCP需要封包拆包协议?

应用层每次发送数据都会被开发人员认为是一个独立的数据包,可是在底层由于TCP是可靠的传送协议,每次发送数据都要收到确认,所以底层有可能把应用层的两个数据包合并在一起发送。发送到另外一段的时候,可能一次收到两个应用层的数据包,而我们解析这些数据包的时候需要分成两个,所以我们在发送TCP命令包的时候要用标识能分开这两个数据包。所以就需要我们加一个封包拆包的协议。

03 TCP 如何设计 封包与拆包协议?

设计TCP封包拆包协议主要有两种方式,一种是大小+内容模式+校验模式,一种是特殊的分割符号的模式,比如\r\n, http协议就采用的是\r\n来进行分割。

04 Redis 在游戏服务器开发中有什么作用?

Redis 在游戏开发中主要作用有:作为mem cache 数据库,将数据缓存到内存里面。Redis的订阅与发布系统可以作为多游戏服务器之间通讯的工具。Redis的有序集合等可以作为游戏的排行榜。

05 UDP的优点与缺点分别是什么?

UDP传送数据速度快,性能好,缺点是UDP发送完数据就不管了,数据传送中有可能丢包,同时数据包走的网络路径可能不一样,会导致先发的数据包后到,后发的数据包先到,这样就没有正确的时序性。

06 游戏服务器开发采用什么样的编程语言好?

目前市面上找平游戏服务器的主流的变成语言分别如下。

第一档: C++ 与Java。占据了企业招聘里面的绝大部分;

第二档: Go, Python, C#, PHP, Node.js, Lua。

07 什么是弱联网游戏?

弱联网游戏指的是玩家游戏的时候只是自己一个人完,不涉及多人同时交互,这种我们叫做弱联网游戏,同时也提供一些联网的功能,比如购买道具,社交,公告,邮件,排行等等。

08 游戏服务器开发主流的高并发方式有哪些?

游戏服务器开发对性能要求非常的搞,同时要支持高并发,充分发挥硬件性能,提升高并发发挥硬件性能,游戏服务器有两种模式的架构,一种是多进程单线程架构,一种是多进程多线程架构。、

09 游戏服务器用Linux还是Windows操作系统?

目前主流的游戏服务器都基于Linux操作系统的,因为Linux操作系统一直做服务器,并且很多主流的代码模块框架都是优先基于Linux的,比如Redis等,所以一般游戏服务器都用Linux作为服务器的操作系统。

10 游戏服务器开发如何调试?

游戏服务器开发对开发人员的要求非常的高,特别是线上环境,处理的数据量比较大,所以断点调试这种方法,不大适合服务器。服务器一般采用的调试就是打印查看日志。通过日志来分析对应的问题。所以一个好的日志系统对于服务器来说是非常重要的,当然没有断点调试就对开发人员要求更好,对程序把控的能力更强。

服务器面试问题第一批10个问题就是这些,后期陆续还会有laya和服务器的问题解疑一一呈上,需要资料的小伙伴欢迎在下方评论区留言,或私信面试获取!