private void Client_ReceiveCompleted(object sender, SocketHelper.Events.ReceiveEventArgs args) { if (args.ByteLength > 0) { using (MemoryStream ms = new MemoryStream(args.ReceivedBytes)) { using (BinaryReader br = new BinaryReader(ms)) { int code = br.ReadInt32(); switch ((ParamCode)code) { case ParamCode.TimePeriods: { OnVideoDataInfoReceived(VideoTimePeriodsPacket.Decode(ms)); } break; case ParamCode.LocalDownSource: { OnTreeNodesReceived(LocalVideosInfoPacket.Decode(ms)); } break; case ParamCode.Message: onMessage(MessagePacket.Decode(ms)); break; } } } } }
public void TestMessagePacket() { MessagePacket packet = new MessagePacket(MessageType.Error, "errorTest", null); byte[] buffer = MessagePacket.Encode(packet); MessagePacket packet2 = MessagePacket.Decode(buffer); Assert.AreNotSame(packet, packet2); Assert.AreEqual(packet.Type, packet2.Type); Assert.AreEqual(packet.Message, packet2.Message); Assert.AreEqual(packet.Operate, packet2.Operate); }
private void onReceived(object sender, ReceiveEventArgs args) { if (args.ByteLength > 0) { using (MemoryStream ms = new MemoryStream(args.ReceivedBytes)) { int code = PacketBase.ReadInt(ms); //Console.WriteLine("{0} - {1}", (ParamCode)code, args.ByteLength); switch ((ParamCode)code) { case ParamCode.TimePeriods: //接收所有有效视频分布 onTimePeriodsAll(VideoTimePeriodsPacket.Decode(ms).TimePeriods); break; case ParamCode.VideoBaseInfo: //设置视频基本信息 onVideoBase(VideoBasePacket.Decode(ms)); break; case ParamCode.DownloadProgress: //接收推送的下载进度。 onTimePeriodsDownloaded(VideoTimePeriodsPacket.Decode(ms).TimePeriods); break; case ParamCode.VideoPacket: //接收视频包数据流 onVideoStreams(VideoStreamsPacket.Decode(ms)); break; case ParamCode.LocalDownloadPath: onDownloadPathReceived(PacketBase.ReadString(ms)); break; case ParamCode.Message: onVideoMessageFeedback(MessagePacket.Decode(ms)); break; } } } }