package evanq.game.net.manager; import evanq.game.net.AbstractNetConnectionManager; import evanq.game.net.AbstractPacket; import evanq.game.net.INetConnection; import evanq.game.net.INetConnectionFSM; import evanq.game.net.MappingNetConnectionHolder; import evanq.game.net.NetServiceType; import evanq.game.trace.LogSystem; import evanq.game.trace.Trace; /** * * 作为客户端连接持有的,管理本身的连接管理器 * * @author Evan cppmain@gmail.com * */ public final class ClientNetConnectionManager extends AbstractNetConnectionManager { public ClientNetConnectionManager() { super(NetServiceType.CLIENT); } @Override protected INetConnectionFSM createNetConnectionFSM(INetConnection connection) { ClientNetConnectionFSM fsm = new ClientNetConnectionFSM(this,connection); return fsm; } //key bind 是如何设计的?键盘事件,与响应事件。 //holder 可能的职责,持有连接;提供网络服务给单个玩家 //manager 提供广播,定时检查连接的功能。 class ClientConnectionHolder extends MappingNetConnectionHolder { //接受连接 private int indexer = 0 ; @Override public void send(AbstractPacket packet) { //TODO 发送数据包,讲数据包路由 } } }