一起做网游吧【2】:约定

这次接着上篇,上篇谈到目标,以及解决的方案。上次的程序模块的结构图像是由erlang自带的,appmon:start().便可以看到那个结构图像。
这次来谈下通讯的协议,数据封包的格式,关于数据封包的重要性,可以参考很早之前的外挂方面的教程,简单来说,封包协议就是客户端和服务器端通讯的语言,语言不对,将无法交流。
这个网游的协议,对于发送方和接受方,都只接受下面的封包格式:
【封包长度:4字节】【命令:4字节】【数据:不定长字节】
其实,封包长度和命令没必要使用4个字节,但我还是喜欢4个字节,看着习惯,比较好数。
对于数据中的字符串,按照下面的排列格式:
【字符串长度:4字节】【字符串:不定长字节】
对于数据的发送,分下面的情况:
1、如果客户端发送一个命令,服务器没有返回,则认为该命令发送成功,否则,服务器将会发送错误命令或者强制部分重置的命令及数据。
2、如果客户端发送一个命令,服务器返回相同的命令,认为是成功。比如发送一个登陆命令,服务器将返回登陆命令,及玩家的详细信息。
在任何时刻,程序都需要监视错误的命令。
以上约定,贯穿于整个项目。

发表评论

此站点使用Akismet来减少垃圾评论。了解我们如何处理您的评论数据