//public static bool SendNetObject<T>(this T obj, CommandID cmd) //where T : global::ProtoBuf.IExtensible //{ // int cmdID = (int)cmd; // try // { // using (MemoryStream ms = new MemoryStream()) // { // Serializer.Serialize<T>(ms, obj); // byte[] datas = ms.ToArray();//序列化结果 // TCPOutPacket packet = TCPOutPacket.MakeTCPOutPacket( // Sender.tcpOutPacketPool, // datas, 0, datas.Length, // cmdID // ); // return Sender.SendData(packet); // } // } // catch (Exception e) // { // Debug.LogError(e.Message); // return false; // } //} public void SendInitGame(string _Acc, string _RoleID) { InitialGame szInitialGame = new InitialGame(); szInitialGame.Acc = _Acc; szInitialGame.RoleID = Convert.ToInt32(_RoleID); MemoryStream msResult = new MemoryStream(); Serializer.Serialize <InitialGame>(msResult, szInitialGame); byte[] msSendData = msResult.ToArray(); TCPOutPacket szTCPOutPacket = TCPOutPacket.MakeTCPOutPacket(m_GSNetClient.OutPacketPool, msSendData, 0, msSendData.Length, (int)CommandID.CMD_INIT_GAME); if (m_GSNetClient.SendData(szTCPOutPacket)) { SysConOut.WriteLine("发送初始化游戏成功"); } else { SysConOut.WriteLine("发送初始化游戏失败"); } //TCPOutPacket szTCPOutPacket = TCPOutPacket.MakeTCPOutPacket(m_tcpOutPacketPool, // StringUtil.substitute("{0}:{1}:{2}", _Acc, _RoleID, "0"), (int)TCPServerCmds.CMD_INIT_GAME); //if (m_GSNetClient.SendData(szTCPOutPacket)) // SysConOut.WriteLine("发送初始化游戏成功"); //else //{ // SysConOut.WriteLine("发送初始化游戏失败 连接状态 = " + m_GSNetClient.Connected.ToString()); //} m_GSNetClient.OutPacketPool.Push(szTCPOutPacket); }
public ClientNetworkStateContainer(Prompter prompter) { NotConnected = new NotConnected(); PendingLogOn = new PendingLogOn(prompter); WaitingForBoard = new WaitingForBoard(); PendingBoard = new PendingBoard(prompter); WaitingForGame = new WaitingForGame(prompter); FoundGame = new FoundGame(prompter); InitialGame = new InitialGame(prompter); MyTurn = new MyTurn(); TheirTurn = new TheirTurn(prompter); Waiting = new Waiting(prompter); }
public ServerNetworkStateContainer(BspSender sender, IBspDisconnecter disconnecter, GameTypeRepository gameTypeRepo, UserRepository userRepo, MatchMaker matchMaker) { var state = new BspServerState(); NotConnected = new NotConnected(state, sender, gameTypeRepo, userRepo); PendingLogOn = new PendingLogOn(); WaitingForBoard = new WaitingForBoard(state, sender, gameTypeRepo, matchMaker); PendingBoard = new PendingBoard(); WaitingForGame = new WaitingForGame(state, sender, disconnecter, userRepo); FoundGame = new FoundGame(state, sender, disconnecter, userRepo); InitialGame = new InitialGame(); MyTurn = new MyTurn(state, sender, disconnecter, userRepo); TheirTurn = new TheirTurn(); Waiting = new Waiting(); }