anchor.diff:    inherited Destroy;
   end;
   
  +{$IFDEF POSIX}
  +  // posix֪Ƿиú
  +{$ELSE}
  +procedure RaiseLastOSErrorException(LastError: Integer);
  +var
  +  Error: EOSError;
  +begin
  +  if LastError <> 0 then
  +    Error := EOSError.CreateResFmt(@SOSError, [LastError,
  +      SysErrorMessage(LastError)])
  +  else
  +    Error := EOSError.CreateRes(@SUnkOSError);
  +  Error.ErrorCode := LastError;
  +  raise Error;
  +end;
  +{$ENDIF}
  +
   procedure TDiocpBlockTcpClient.CheckSocketResult(pvSocketResult: Integer);
  +var
  +  lvErrorCode:Integer;
   begin
     ///  Posix, fail return 0
     ///  ms_windows, fail return -1
     {$IFDEF POSIX}
     if (pvSocketResult = -1) or (pvSocketResult = 0) then
     begin
  -    RaiseLastOSError;
  -  end;
  +     try
  +       RaiseLastOSError;
  +     except
  +       Disconnect;
  +       raise;
  +     end;
  +   end;
     {$ELSE}
     if (pvSocketResult = -1) then
     begin
  -    RaiseLastOSError;
  +    lvErrorCode := GetLastError;
  +    Disconnect;     // 쳣Ͽ
  +    RaiseLastOSErrorException(lvErrorCode);
  +
     end;
     {$ENDIF}
   end;
  
positive.code: function TDiocpBlockTcpClient.sendBuffer(buf: Pointer; len: cardinal): Integer;
  begin
    Result := FRawSocket.SendBuf(buf^, len);
    CheckSocketResult(Result);
  end;
  
  
negative.code:   {$ENDIF}
  
    ,Classes
    , SysConst;
  
  {$if CompilerVersion < 23}
  type
  