版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/dyd961121/article/details/81780307
一.实现一个游戏服务器所需要的知识
1.至少得掌握一门编程语言,c++,java ,go .... 。
2.socket,tcp以及通讯方式
3.服务器架构要有一定了解,服务器集群怎么搭建,集群内怎么通讯(游戏服,战斗服,聊天服)
4.数据库
二.客户端与服务器怎么通讯?
1.涉及到tcp机制粘包分包,因为tcp的这个机制,所以在服务端与客户端必须要有对其进行处理。
2.协议号,服务器与客户端之间约定的一个编号,服务器与客户端都可以通过这个编号来解析对方想干什么。
3.protobuf,在真正的工程中不可能使用明文的方式来传输数据,所以用protobuf编码解码来传输数据
4.基于以上三点所以cs双方通讯的规则为: 包长+协议号+pb数据 (注意前面两个字段应为固定字长,双方约定为
int8,int16,int32,int64其中一种,视情况而定)
三.线程安全
1.首先了解为什么会要有线程安全的概念,如果同时多人进行读写操作会有什么后果?
2.怎么解决?加锁?
3.给每一个连接上来的客户端都开一个线程有什么弊端?
四.客户端与服务器之间一些基础
1.心跳(如果客户端非正常下线,服务器的一种检测方式,同时可以加上数据验证)
2.服务器群发消息
3.数据结构
这里的所有概念都没有给出解答
参考文献:https://blog.csdn.net/qq_32260719/article/details/79443236