10055表示缓冲不足,而10024才表示打开太多SOCKET,因此增加缓冲应该可以

解决方案 »

  1.   

    你的Server数组只到20,怎么可能大过20个呢
      

  2.   

    同意楼上的看法 你的PortServer数组只到20 const servernum = 3000 ;
    procedure TForm1.Button2Click(Sender: TObject);
    var
        PortServer:array [0..servernum-1] of TServerSocket;
        i:integer;
    begin
        for i:=0 to servernum-1 do
        begin
            PortServer[i]:=TServerSocket.Create(nil);
            with PortServer[i] do
            begin
                Active:=false;
                Port:=30000+i;
                Active:=true;
            end;
        end;
    end;
    end.
    在我的机子上跑起来没有你说的错误 不过我看到机子出汗了:)
      

  3.   

    按xpony同志的建议修改后,上段程序在win98下依旧不能运行,但在Winme和Winnt下没问题,请问配置一样,为什么在win98不能正常运行?