#include <msp/core/refptr.h>
#include <msp/io/console.h>
#include <msp/io/eventdispatcher.h>
-#include <msp/net/streamlistensocket.h>
+#include <msp/net/streamserversocket.h>
#include <msp/net/streamsocket.h>
#include <msp/net/resolve.h>
private:
bool ipv6;
bool listen;
- Net::StreamListenSocket *server_sock;
+ Net::StreamServerSocket *server_sock;
Net::StreamSocket *sock;
IO::EventDispatcher event_disp;
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<string> &args = getopt.get_args();
- if(args.empty())
- throw usage_error("host argument missing");
-
- RefPtr<Net::SockAddr> addr = Net::resolve(args.front(), (ipv6 ? Net::INET6 : Net::INET));
+ RefPtr<Net::SockAddr> addr = Net::resolve(host_name, (ipv6 ? Net::INET6 : Net::INET));
if(!listen)
{
sock = new Net::StreamSocket(addr->get_family());
}
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));