quic_client_bin.cc revision 90dce4d38c5ff5333bea97d859d4e484e27edf0c
1// Copyright (c) 2012 The Chromium Authors. All rights reserved. 2// Use of this source code is governed by a BSD-style license that can be 3// found in the LICENSE file. 4 5// A binary wrapper for QuicClient. Connects to --hostname or --address on 6// --port and requests URLs specified on the command line. 7// 8// For example: 9// quic_client --port 6122 /index.html /favicon.ico 10 11#include "base/at_exit.h" 12#include "base/command_line.h" 13#include "base/logging.h" 14#include "base/strings/string_number_conversions.h" 15#include "net/base/ip_endpoint.h" 16#include "net/tools/quic/quic_client.h" 17 18int32 FLAGS_port = 6121; 19std::string FLAGS_address = "127.0.0.1"; 20std::string FLAGS_hostname = "localhost"; 21 22int main(int argc, char *argv[]) { 23 CommandLine::Init(argc, argv); 24 CommandLine* line = CommandLine::ForCurrentProcess(); 25 if (line->HasSwitch("port")) { 26 int port; 27 if (base::StringToInt(line->GetSwitchValueASCII("port"), &port)) { 28 FLAGS_port = port; 29 } 30 } 31 if (line->HasSwitch("address")) { 32 FLAGS_address = line->GetSwitchValueASCII("address"); 33 } 34 if (line->HasSwitch("hostname")) { 35 FLAGS_hostname = line->GetSwitchValueASCII("hostname"); 36 } 37 LOG(INFO) << "server port: " << FLAGS_port 38 << " address: " << FLAGS_address 39 << " hostname: " << FLAGS_hostname; 40 41 base::AtExitManager exit_manager; 42 43 net::IPAddressNumber addr; 44 CHECK(net::ParseIPLiteralToNumber(FLAGS_address, &addr)); 45 net::tools::QuicClient client( 46 net::IPEndPoint(addr, FLAGS_port), FLAGS_hostname); 47 48 client.Initialize(); 49 50 if (!client.Connect()) return 1; 51 52 client.SendRequestsAndWaitForResponse(argc, argv); 53 return 0; 54} 55