手机网游制造之请求处理篇
2009-10-11 00:00:00 来源:WEB开发网核心提示:开发程序:疯狂的炸弹开发进度:第四期本期要点:设计服务器端请求处理功能开发平台:java平台经过前面3期的讲解,我们的手机网游《疯狂的炸弹》大体已经完成,手机网游制造之请求处理篇,在加上上本期开发的请求处理功能,就OK啦,可以解决这个问题,使用该函数反馈的userID(图2),快来试试我们的《疯狂的炸弹》吧(游戏下载地
开发程序:疯狂的炸弹
开发进度:第四期
本期要点:设计服务器端请求处理功能
开发平台:java平台
经过前面3期的讲解,我们的手机网游《疯狂的炸弹》大体已经完成,在加上上本期开发的请求处理功能,就OK啦。快来试试我们的《疯狂的炸弹》吧(游戏下载地址:http://www.shudoo.com/bzsoft)。
既然是手机网游,自然客户端的数量就会比较多,所以多个客户端同时向服务器端发送请求的情况很常见。为了更好的运行,服务器端需要同时处理多个客户端的请求,这就是用到并发处理。下面就随着我们一起学习手机网游是如何并发处理多个客户端的请求的。
请求处理设计思路
在《疯狂的炸弹》程序的服务器端请求处理功能中,没有采用“线程池”技术,而是直接采用当一个客户端连接请求到达时,启动一个新的线程进行处理,在连接完成以后关闭线连接程。
通过为每个连接的客户端设置新的线程,很容易就实现了处理多个客户端的要求,使得多个客户端可以同时工作(图1)。在每个线程的内部,先根据客户端网络协议格式规定,解析客户端发送过来的请求数据,然后依据不同的请求命令分别进行处理。
如何并发处理
由于服务器端需要同时处理多个客户端发送的请求,所以需要对核心的数据进行并发处理,这样才能解决数据同步的问题。下面以分配用户ID为例子,来介绍服务器端并发处理的过程。客户端第一次连接服务器端时,服务器端反馈一个唯一的序号给客户端。服务器端每派发一个ID,ID的值就加1。
如果多个客户端同时发送请求,服务器端计数就有可能出错。使用Java语言中的synchronized关键字修饰处理逻辑,可以解决这个问题。使用该函数反馈的userID(图2),可以保证在多个客户端同时访问的情况下数据的同步。
[]
赞助商链接