为了更好的理解手机网络游戏的架构和开发技巧,本人在他人手机网络象棋的基本上,进一步进行网络通信部分的修改和优化,采用socket方式进行数据通信。
以下是server的Server.java的简介。
此类主要负责:
1. 游戏共用数据的初始化
playerMap.clear() 玩家容器的清空
Desk[] 遍历数组,赋控制
2. 启动serversocket, 等待client连接
3. 连接客户端后,将socket作为参数,启动独立线程独立读写、逻辑业务(第二篇重点描述)
具体代码如下:
/**
*
*/
package net.tuolian.newserver;
import java.io.IOException;
import java.net.ServerSocket;
import java.net.Socket;
import java.util.HashMap;
import java.util.Map;
/**
* @author sean
*
* @since 2009/06/18
*
* 1.create serversocket
* 2. wait for new connection
* 3. start thread to handle data and logic
* 4.
*
*/
public class Server {
static int port=9999;
static ServerSocket server;
static final int DESKNUM = 10; //总共游戏桌子数量
public static int playerId = 1; //默认玩家id为1
public static Map<Integer, Player> playerMap = new HashMap<Integer, Player>(); //玩家容器
public static int counter = 0; //客户端连接累计数,即玩家id的依据
static Desk[] desks = new Desk[10]; //桌子数组
/**
* @param args
*/
public static void main(String[] args) {
// TODO 初始化
init();
try {
server = new ServerSocket(port);
System.out.println("服务器端已启动:" + port);
while(true){
System.out.println("ready to accept new client");
Socket socket = server.accept();
System.out.println("accepted a client: " + socket.getRemoteSocketAddress());
//此处需要修改,目前每个客户端登录,启动专门线程,耗费资源
new Network(socket).start();
}
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
finally{
if( server != null){
try {
server.close();
server = null;
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
}
private static void init() {
// TODO 服务器server的初始化动作,playerMap情况, 桌子情况
//初始化工作
playerMap.clear();
for (int i = 0; i < DESKNUM; i++) {
desks[i] = new Desk();
desks[i].setID(i);
}
}
/**
* 发送消息类
* 主要工作就是发送到队列
* 由发送线程去除队列中消息,进行依次发送
*
* @param player
* @param m
*
*/
public static void sendMessage(Player player, String message) {
// TODO 改写sendMessage方法,按照msg方式进行封装,并且压入消息队列中
int cmdType = Message.GAME_RESP;
Message msg = new Message(cmdType, message);
msg.setPlayerId(player.getID());
player.data.push(msg);
System.out.println("游戏中消息发送完毕:"+ msg.getMessage());
}
}
分享到:
相关推荐
基于Socket手机网络象棋开发基于Socket手机网络象棋开发基于Socket手机网络象棋开发基于Socket手机网络象棋开发基于Socket手机网络象棋开发基于Socket手机网络象棋开发基于Socket手机网络象棋开发
手机网络象棋源码,注释的非常详细,希望能够给感兴趣的朋友一点参考价值。手机版。
1. 游戏共用数据的初始化 playerMap.clear() 玩家容器的清空 Desk[] 遍历数组,赋控制 2. 启动serversocket, 等待client连接 3. 连接客户端后,将socket作为参数,启动独立线程独立读写、逻辑业务(第二篇重点...
手机版象棋游戏采用MIDP1.0开发,在低端手机上运行的同时,保证了高端手机的兼容性,其市场发展空间巨大。伴随着中国移动GPRS和中国联通CDMA1X数据业务的开展,手机游戏将是3G数据业务的一个重要的应用领域。 根据...
【案例三】AICrowd国际象棋挑战:棋子分类
j2me手机基于服务器的网络象棋游戏源代码
应大家的要求,我把 完整的网络象棋的源码发出来,这个是哪个哥们写的,就不知道了,在我的别的资源里,已经全部改成了暗棋。
Java版的手机象棋游戏,采用MIDP1.0开发,在低端手机上运行的同时,保证了高端手机的兼容性,支持大型Web服务器,以Http协议通讯。
中国象棋开发图片包有图片供象棋开发可做简单开发应用,Android游戏
Flash象棋网络版是问答娱乐推出的一套多人网络联机棋类游戏,网络版包括服务端+纯...Flash网络象棋功能介绍: 男女虚拟形象支持 棋子走子路点显示,不会玩的玩家也能轻易上手 将军,房间聊天等提示采用语音
网络象棋对战C#源码 网络象棋对战 网络象棋对战C#源码 网络象棋对战C#源码
象棋程序开发资料全集象棋程序开发资料全集象棋程序开发资料全集象棋程序开发资料全集象棋程序开发资料全集象棋程序开发资料全集象棋程序开发资料全集
超级智能的手机中国象棋程序包,简单易操作。非常智能
手机版象棋游戏采用MIDP1.0开发,在低端手机上运行的同时,保证了高端手机的兼容性,其市场发展空间巨大。伴随着中国移动GPRS和中国联通CDMA1X数据业务的开展,手机游戏将是3G数据业务的一个重要的应用领域。
基于Java的中国象棋对弈游戏系统开发代码。适用场景:课程设计、大作业、毕业设计、项目设计等。适用人群:本科、专科、高职等。 代码量:3000行左右。可以直接运行,一键导入Idea、Eclipse即可。 支持JavaJDK所有...
象棋源码H5开发设计的象棋 AI在线对弈网页页面象棋源码【全新經典版+内嵌ai算法】 效果演示https://www.a5ymg.cn/571.html 【象棋源码】全新經典版H5开发设计的象棋完整篇AI在线对弈网页页面象棋源码 經典版H5开发...
python象棋项目服务器端.rar
是基于VS开发平台的一款象棋游戏。主要是针对网络象棋的开发
安卓游戏开发:象棋游戏源码,适合新手学期,代码全面简单。
C#绑定IP到端口,有TCP连接的网络版象棋。服务器代码很简单,需要的找我。有些代码比较乱。