我使用indy的idtcpserver/idtcpserver时候,客户端发过来数据,然后向每个客户端发送收到的数据,但是过了大概半个小时左右,就发现客户端收不到数据,其他的客户端连接也连接不上服务器,我的客户端大概在70个左右,其中有一个客户端没3秒钟就发送3条消息,我使用的是流操作模式,发送代码如下,那位高手指点小弟一下,急var
    i,count:integer;
    pt,st:TIdPeerThread;
    messageid:xmessageid;
    FSendStream:TmemoryStream;
    goodsrelease:Tgoodsrelease;
    pgoodsrelease:^Tgoodsrelease;
    client:Tidtcpclient;
    clist : TList;
    CS:TRTLCriticalSection;
begin
     messageid:=XMIDClientreleasedatas;    try
       initializeCriticalSection(cs);
       FSendStream:=Tmemorystream.Create;
       Fsendstream.Clear;
       Fsendstream.Write(messageid,sizeof(messageid));
       count:=goodslist.Count;
       FSendStream.Write(count,sizeof(count));
       for i:=0 to goodslist.Count-1 do
        begin
          pgoodsrelease:=pointer(goodslist.Items[i]);
          goodsrelease:=pgoodsrelease^;
          Fsendstream.Write(goodsrelease,sizeof(goodsrelease));
       end;
      try
        clist := IdTCPServer.Threads.LockList;
      finally
      IdTCPServer.Threads.UnlockList;
      end;
      try
       EnterCriticalSection(cs);
        for i:=0 to clist.Count-1 do
         begin
          pt:=TIdPeerThread(clist.items[i]);
          if pt.ThreadID<>athread.ThreadID then
          begin
          try            begin
            pt.Connection.WriteInteger(Fsendstream.Size);
            pt.Connection.WriteStream(Fsendstream);
            end;
          except
          pt.Stop;
          end;
          end;
       end;
       finally
        LeaveCriticalSection(CS);
       end;
    finally
        Fsendstream.Free;
    end;
end;