遇到一个问题,因为厂家提供的获取视频流的方式为UDP。我获得了数据后,需要通过TCP的方式来发送。 
但是现在程序完成以后,出现一个主要问题是通过转发后的数据,解码的时候出现了花屏的现象,我现在分析的结果是因为UDP发送的包顺序不一致,导致我通过TCP发送到解码的包的顺序也不一样。但是单独用解码看UDP不会出现花屏的现象,而用解码看TCP的时候,就出现了花屏的现象。大家帮我分析一下,该怎么来处理这个问题? 
附上UDP接收数据然后转发的代码: 
procedure TFrmMain.IdUDPServer1UDPRead(Sender: TObject; AData: TStream; 
  ABinding: TIdSocketHandle); 
var 
  List:TList; 
  count,iFileSize:Integer; 
  AThread : TIdPeerThread; 
  tempStream:TMemoryStream; 
begin 
  if AData.Size <0 then 
    Exit; 
  tempStream:=TMemoryStream.Create; 
  List:=IdTcpServer1.Threads.LockList; 
  try 
  try 
  //下面就是通过IdTcpServer1来发送数据的部分,这里的判断应该消耗的时间不多吧?会不会影响效率? 
  if tempflag then begin 
    if ((List.Count>0)) then begin 
      for count:=0 to List.Count-1 do begin 
        AThread := List.Items[0]; 
        if (AThread.Connection.Connected) then begin 
          AThread.Connection.OpenWriteBuffer; 
          AThread.Connection.WriteStream(AData); 
          AThread.Connection.CloseWriteBuffer; 
        end; 
      end; 
    end; 
  end; 
  except 
  on E:Exception do 
    Memo1.Lines.Add(E.Message); 
  end; 
  finally 
    IdTcpServer1.Threads.UnlockList; 
  end; end; 我在网上找了好久类似的问题,一直没有得到解决,请大家帮忙看看!!!