X-Git-Url: http://git.localhorst.tv/?a=blobdiff_plain;f=src%2Fnet%2Ftcp.cpp;h=7d8862a6697dbd17ade4d1d5dc51e4aff35346ab;hb=ce10bfbe252d5598bbb559c6ce55aed1b9393227;hp=f9e039b96aa3d160d81b5ad9ba1c6ec567a41fa0;hpb=ab5d0b96a74b0d8fb33a89c097ff9c7021349f56;p=blank.git diff --git a/src/net/tcp.cpp b/src/net/tcp.cpp index f9e039b..7d8862a 100644 --- a/src/net/tcp.cpp +++ b/src/net/tcp.cpp @@ -27,6 +27,18 @@ Socket::Socket(unsigned short port) } } +Socket::Socket(const string &host, unsigned short port) +: sock(nullptr) { + IPaddress ip; + if (SDLNet_ResolveHost(&ip, host.c_str(), port) == -1) { + throw NetError("failed to resolve host " + host); + } + sock = SDLNet_TCP_Open(&ip); + if (!sock) { + throw NetError("failed to connect to " + host + ':' + to_string(port)); + } +} + Socket::Socket(TCPsocket sock) : sock(sock) { @@ -86,7 +98,6 @@ int Socket::RemoveFrom(SDLNet_SocketSet set) { Pool::Pool(int max_conn, size_t buf_siz) : set(SDLNet_AllocSocketSet(max_conn)) -, buffer(buf_siz, '\0') , connections() , use_conn(0) , max_conn(max_conn)