Пример #1
0
  void Socket::setsockopt(const Option& option) throw (Exception)
  {
    int error;

    if(!isOpened())
    {
      throw Exception(SETSOCKOPT, NOT_OPENED, NOT_OPENED_CODE);
    }

    error = ::setsockopt(descriptor, option.level(), option.id(), option.pointer(), option.size());

    if(error == SETSOCKOPT_ERROR)
    {
      throw LibCException(SETSOCKOPT);
    }
  }
Пример #2
0
  int Socket::getsockopt(Option& option) throw (Exception)
  {
    int error;

    if(!isOpened())
    {
      throw Exception(GETSOCKOPT, NOT_OPENED, NOT_OPENED_CODE);
    }

    socklen_t optSize = option.size();

    error = ::getsockopt(descriptor, option.level(), option.id(), option.pointer(), &optSize);

    if(error == GETSOCKOPT_ERROR)
    {
      throw LibCException(GETSOCKOPT);
    }

    return optSize;
  }