最近我在做一个使用UDP传输视频图像的软件
首先获取视频图像,打入流每次读取512字节大小的字节数组然后发送。。
这样while()直到读完发送完毕这期间我发现了一个问题
在我发送视频图像期间由于我还跟我朋友QQ语音着。。
发现每次传送期间居然语音卡的都不出声音了这是为什么???? 我每次才发送512字节也就是0.5KB的数据
我的带宽是1M (140KB/S)为什么会网络卡成这样???
难道网卡堆积数据到了140K再发送??请高人解释下
谢谢了以下是我的代码片段:
byte[] Temp_Data = new byte[512];
using (MemoryStream MS = new MemoryStream())
                            {
                                //将图像保存在流中
                                this.VideoData.Save(MS, ImageFormat.Bmp);
                                //重定向流
                                MS.Position = 0;                                //从现在开始备份该次封包所有数据
                                TYPE_BACKUP_UserVideoData TBUV = new TYPE_BACKUP_UserVideoData();
                                //打入当前封包Id
                                TBUV.Package_Id = this.PackageId;                                //发送视频开始标记
                                Order = OrderInfo.ORDER_BEGIN_VIDEO + Globle_Config.SUS.Username +
                                        OrderInfo.ORDER_CENTER_SPLIT +
                                        MS.Length + OrderInfo.ORDER_CENTER_SPLIT +
                                        (((int) MS.Length/3072) + 1).ToString() + OrderInfo.ORDER_CENTER_SPLIT +
                                        this.PackageId.ToString() + OrderInfo.ORDER_CENTER_SPLIT + OrderInfo.ORDER_END;                                this.Order = Order;
                                this.Sleep = 1;
                                foreach (var UserA in UserAttr)
                                {
                                    this.UserEndPoint = UserA.VideoCustomer_IPEndPoint;
                                    //记录这次封包的用户标示
                                    TBUV.Package_User = this.Username;
                                    this.SendData();
                                    //开始分块发送,只要能读出数据则发出去
                                    while ((Length = MS.Read(Temp_Data, 0, Temp_Data.Length)) > 0)
                                    {
                                        //拼接分块命令
                                        Order = OrderInfo.ORDER_GOON_VIDEO + Globle_Config.SUS.Username +
                                                OrderInfo.ORDER_CENTER_SPLIT +
                                                Convert.ToBase64String(Temp_Data, 0, Temp_Data.Length) +
                                                OrderInfo.ORDER_CENTER_SPLIT +
                                                Package_Id + OrderInfo.ORDER_CENTER_SPLIT + this.PackageId.ToString() +
                                                OrderInfo.ORDER_CENTER_SPLIT + OrderInfo.ORDER_END;                                           //开始记录此次封包的封包片数据
                                        TYPE_BACKUP_VideoPackageData TBVPK = new TYPE_BACKUP_VideoPackageData();
                                        //打入这次封包片数据
                                        TBVPK.Package_Key = Package_Id;
                                        //打入这次封包片编号
                                        TBVPK.Package_Data = Temp_Data;
                                        //将这次封包片打入该封包集合中
                                        TBUV.VideoUserDataCollection.Add(TBVPK);                                        //封包片ID标记自身累加
                                        Package_Id++;
                                        //发送出去
                                        this.Order = Order;
                                        this.Sleep = 1;
                                        this.UserEndPoint = UserA.VideoCustomer_IPEndPoint;
                                        this.SendData();
                                    }
                                    //发送完毕后开始发送 视频结尾标记
                                    Order = OrderInfo.ORDER_END_VIDEO + Globle_Config.SUS.Username;
                                    this.Order = Order;
                                    this.Sleep = 1;
                                    this.UserEndPoint = UserA.VideoCustomer_IPEndPoint;
                                    this.SendData();
                                    //记录此次封包到全局备份视频封包集合中
                                    Globle_Config.Backup_UserVideoDataCollection.Add(TBUV);
                                    //累加当前封包数量
                                    this.PackageId++;-----------------------请帮忙找到解决方法,令当高分送上--------------------------