X-Git-Url: http://git.tdb.fi/?a=blobdiff_plain;f=examples%2Fnetcat.cpp;h=9bbad87b8d0fa944a636cf52e28ba37f67d7e8ee;hb=refs%2Fheads%2Fmaster;hp=2532959e56ec7e8b595c035d7334b14c797a8b95;hpb=5d91f9edad6e8a11e21979a6aacb4ec6f2dc63ce;p=libs%2Fnet.git diff --git a/examples/netcat.cpp b/examples/netcat.cpp index 2532959..cd549f4 100644 --- a/examples/netcat.cpp +++ b/examples/netcat.cpp @@ -3,7 +3,7 @@ #include #include #include -#include +#include #include #include @@ -15,7 +15,7 @@ class NetCat: public RegisteredApplication private: bool ipv6; bool listen; - Net::StreamListenSocket *server_sock; + Net::StreamServerSocket *server_sock; Net::StreamSocket *sock; IO::EventDispatcher event_disp; @@ -34,16 +34,15 @@ NetCat::NetCat(int argc, char **argv): server_sock(0), sock(0) { + string host_name; + GetOpt getopt; getopt.add_option('6', "ipv6", ipv6, GetOpt::NO_ARG); getopt.add_option('l', "listen", listen, GetOpt::NO_ARG); + getopt.add_argument("host", host_name, GetOpt::REQUIRED_ARG); getopt(argc, argv); - const vector &args = getopt.get_args(); - if(args.empty()) - throw usage_error("host argument missing"); - - RefPtr addr = Net::resolve(args.front(), (ipv6 ? Net::INET6 : Net::INET)); + RefPtr addr = Net::resolve(host_name, (ipv6 ? Net::INET6 : Net::INET)); if(!listen) { sock = new Net::StreamSocket(addr->get_family()); @@ -53,7 +52,7 @@ NetCat::NetCat(int argc, char **argv): } else { - server_sock = new Net::StreamListenSocket(addr->get_family()); + server_sock = new Net::StreamServerSocket(addr->get_family()); server_sock->listen(*addr); event_disp.add(*server_sock); server_sock->signal_data_available.connect(sigc::mem_fun(this, &NetCat::net_data_available));