anchor.diff:    TDiocpTcpServer = class(TComponent)
     private
       FClosingFlag:Byte;
  +    FOpeningFlag:Byte;
       
       FListeners: TDiocpListeners;
   
  
positive.code: procedure TDiocpTcpServer.CheckOpen(pvInitalizeNum:Integer);
  begin
    if FActive then Exit;
    
    // IOCP
    FIocpEngine.CheckStart;
  
    if UseAsyncRecvQueue then
    begin
      FRecvBuffLink := NewBufferPool(self.FWSARecvBufferSize, 0);
    end;
    
    DoBeforeOpen();
  
    if FListeners.FList.Count = 0 then
    begin
      FDefaultListener.FListenAddress := FDefaultListenAddress;
      FDefaultListener.FListenPort := FPort;
      FDefaultListener.FIPVersion := IP_V4;
      FDefaultListener.Start(FIocpEngine);
      FDefaultListener.PostAcceptExRequest(pvInitalizeNum);
    end else
    begin
      FListeners.Start(FIocpEngine);
      FListeners.PostAcceptExRequest(pvInitalizeNum);
    end;
  
    FActive := True;
  
    DoAfterOpen;
    if Assigned(FOnAfterOpen) then FOnAfterOpen(Self);
  end;
  
  
  
negative.code: 
  function TDiocpTcpServer.CanWork: Boolean;
  begin
    Result := (FActive and (self.FClosingFlag = 0)) or (FOpeningFlag = 1);
  end;
  
  procedure TDiocpTcpServer.CheckCreatePoolObjects(pvMaxNum:Integer);
  