Esempio n. 1
0
int mySocket::getReceiveBufSize()
{
    int rcvBuf;
    int myOptionLen = sizeof(rcvBuf);

	try 
	{
		if ( getsockopt(socketId,SOL_SOCKET,SO_RCVBUF,(char *)&rcvBuf,&myOptionLen) == -1 )
		{
			#ifdef WINDOWS_XP
				int errorCode;
				string errorMsg = "get RCVBUF option: ";
				detectErrorGetSocketOption(&errorCode,errorMsg);
				myException* socketOptionException = new myException(errorCode,errorMsg);
				throw socketOptionException;
			#endif

			#ifdef UNIX
				myException* unixSocketOptionException = new myException(0,"unix: error getting host by name");
				throw unixSocketOptionException;
			#endif
        }
	}
    catch(myException* excp)
	{
		excp->response();
		delete excp;
		exit(1);
	}
    return rcvBuf;
}
Esempio n. 2
0
bool mySocket::getLingerOnOff()
{
	struct linger lingerOption;
	int myOptionLen = sizeof(struct linger);

	try 
	{
		if ( getsockopt(socketId,SOL_SOCKET,SO_LINGER,(char *)&lingerOption,&myOptionLen) == -1 )
		{
			#ifdef WINDOWS_XP
				int errorCode;
				string errorMsg = "get LINER option: ";
				detectErrorGetSocketOption(&errorCode,errorMsg);
				myException* socketOptionException = new myException(errorCode,errorMsg);
				throw socketOptionException;
			#endif

			#ifdef UNIX
				myException* unixSocketOptionException = new myException(0,"unix: error getting host by name");
				throw unixSocketOptionException;
			#endif
        }
	}
    catch(myException* excp)
	{
		excp->response();
		delete excp;
		exit(1);
	}

	if ( lingerOption.l_onoff == 1 ) return true;
	else return false;
}
Esempio n. 3
0
int mySocket::getKeepAlive()
{
    int myOption;        
    int myOptionLen = sizeof(myOption);

	try 
	{
		if ( getsockopt(socketId,SOL_SOCKET,SO_KEEPALIVE,(char *)&myOption,&myOptionLen) == -1 )
		{
			#ifdef WINDOWS_XP
				int errorCode;
				string errorMsg = "get KEEPALIVE option: ";
				detectErrorGetSocketOption(&errorCode,errorMsg);
				myException* socketOptionException = new myException(errorCode,errorMsg);
				throw socketOptionException;
			#endif

			#ifdef UNIX
				myException* unixSocketOptionException = new myException(0,"unix: error getting host by name");
				throw unixSocketOptionException;
			#endif
        }
	}
    catch(myException* excp)
	{
		excp->response();
		delete excp;
		exit(1);
	}
    return myOption;    
}
int MySocket::getSendBufSize()
{
    int sendBuf;
    int myOptionLen = sizeof(sendBuf);

	try 
	{
		if ( getsockopt(m_nSocketId,SOL_SOCKET,SO_SNDBUF,(char *)&sendBuf,&myOptionLen) == -1 )
		{
			#ifdef WINDOWS_XP
				int errorCode;
				string errorMsg = "get SNDBUF option: ";
				detectErrorGetSocketOption(&errorCode,errorMsg);
				MyException socketOptionException(errorCode,errorMsg);
				throw socketOptionException;
			#endif

			#ifdef UNIX
				MyException unixSocketOptionException(0,"unix: error getting host by name");
				throw unixSocketOptionException;
			#endif
        }
	}
    catch(MyException& excp)
	{
		excp.response();
		exit(1);
	}
    return sendBuf;
}    
int MySocket::getLingerSeconds()
{
	struct linger lingerOption;
	int myOptionLen = sizeof(struct linger);

	try 
	{
		if ( getsockopt(m_nSocketId,SOL_SOCKET,SO_LINGER,(char *)&lingerOption,&myOptionLen) == -1 )
		{
			#ifdef WINDOWS_XP
				int errorCode;
				string errorMsg = "get LINER option: ";
				detectErrorGetSocketOption(&errorCode,errorMsg);
				MyException socketOptionException(errorCode,errorMsg);
				throw socketOptionException;
			#endif

			#ifdef UNIX
				MyException unixSocketOptionException(0,"unix: error getting host by name");
				throw unixSocketOptionException;
			#endif
        }
	}
    catch(MyException& excp)
	{
		excp.response();
		exit(1);
	}

	return lingerOption.l_linger;
}
int MySocket::getReuseAddr()
{
    int myOption;        
    int myOptionLen = sizeof(myOption);

	try 
	{
		if ( getsockopt(m_nSocketId,SOL_SOCKET,SO_REUSEADDR,(char *)&myOption,&myOptionLen) == -1 )
		{
			#ifdef WINDOWS_XP
				int errorCode;
				string errorMsg = "get REUSEADDR option: ";
				detectErrorGetSocketOption(&errorCode,errorMsg);
				MyException socketOptionException(errorCode,errorMsg);
				throw socketOptionException;
			#endif

			#ifdef UNIX
				MyException unixSocketOptionException(0,"unix: error getting host by name");
				throw unixSocketOptionException;
			#endif
        }
	}
    catch(MyException& excp)
	{
		excp.response();
		exit(1);
	}

	return myOption;
}