/// <summary> /// 发送消息到客户端 /// </summary> /// <param name="protocol">协议号</param> public void Send(INetPack pack) { Assert.AreNotEqual <Protocol>(Protocol.Invalid, pack.Protocol); byte[] data = Utility.ToBytes(pack); Assert.IsTrue(data.Length < NetConfig.messageBodyLength); byte[] sequence = BitConverter.GetBytes(Sequence); byte[] protocol = BitConverter.GetBytes((int)pack.Protocol); byte[] head = Utility.CombineBytes(sequence, protocol); byte[] send = Utility.CombineBytes(head, data); networkStream.Write(send, 0, send.Length); networkStream.Flush(); }
/// <summary> /// 发送消息到客户端 /// </summary> /// <param name="protocol">协议号</param> public void Send(INetPack netPack) { Assert.AreNotEqual <Protocol>(Protocol.Invalid, netPack.Protocol); if (!IsAlive) { return; } byte[] data = Utility.ToBytes(netPack); Assert.IsTrue(data.Length < NetConfig.messageBodyLength); byte[] sequence = BitConverter.GetBytes(++Sequence); byte[] protocol = BitConverter.GetBytes((int)netPack.Protocol); byte[] head = Utility.CombineBytes(sequence, protocol); byte[] send = Utility.CombineBytes(head, data); Debug.LogWarning("Client Send:" + netPack.Protocol.ToString()); netLogic(send); }
/// <summary> /// 协议数据转成字节流 /// </summary> /// <param name="pack"></param> /// <returns></returns> public static byte[] ToBytes(INetPack pack) { string json = JsonUtility.ToJson(pack); return(Encoding.UTF8.GetBytes(json)); }