コード例 #1
0
ファイル: Sockspx.c プロジェクト: liuwang66110/books
//
// Function: ValidateArgs
//
// Description:
//    Parses the command line arguments and sets some global
//    variables to determine the behavior of the application.
//
void ValidateArgs(int argc, char **argv)
{
    int   i;
        
    for (i=1; i < argc ;i++) 
    {
        if ((argv[i][0] == '-') || (argv[i][0] == '/' )) 
        {
            switch (tolower (argv[i][1])) 
            {
        	case 's':       // act as server
                    bServer = TRUE;
        	    break;
                case 'c':       // act as client
        	    bServer = FALSE;
                    break;
        	case 'e':       // server endpoint
                    pszServerEndpoint = &argv[i][3];   
        	    break;
                case 'n':       // server address
        	    pszServerAddress = &argv[i][3];    
                    break;
        	case 'l':       // local address
                    pszLocalAddress = &argv[i][3];     
        	    break;
                case 'm':       // enumerate local addrs
        	    bEnumerate = TRUE;               
                    break;
                case 'p':       // protocol
        	    chProtocol = tolower(argv[i][3]);
                    if (CheckProtocol(chProtocol) == FALSE)
        	    {
                        printf("Unknown protcol specified\n\n");
        		usage(argv[0]);
                    }
        	    break;
                case 'b':       // number of bytes to send
                    dwNumBytes = atoi(&argv[i][3]);
                    break;
		case 'r':	// number of repititions
		    dwNumToSend = atoi(&argv[i][3]);
		    break;
                default:
                    usage(argv[0]);
                    break;
            }
        }
        else
            usage(argv[0]);
    }    
    return;
}
コード例 #2
0
ファイル: HTTPUrl.cpp プロジェクト: Smi1le/OOP
void CHttpUrl::ParseUrl(std::string const &url)
{
	try
	{
		boost::string_ref refUrl(url);
		size_t begin = 0;
		m_protocol = CheckProtocol(refUrl, begin);
		if (m_protocol == Protocol::HTTPS)
		{
			m_port = 443u;
		}
		else
		{
			m_port = 80u;
		}
		m_domain = ValidateDomainName(ParseDomainName(url.substr(begin), begin));
		m_document = ValidateDocumentName(url.substr(begin));
	}
	catch (std::invalid_argument const &e)
	{
		throw CUrlParsingError(e.what());
	}
}