X-Git-Url: http://git.localhorst.tv/?a=blobdiff_plain;f=src%2Fnet%2Ftcp.cpp;h=6ecd2cdb80b79e8e75e42efe09f1582d4b4195d5;hb=985dff25f7fde96308a66e5b01bc226589fd0825;hp=f9e039b96aa3d160d81b5ad9ba1c6ec567a41fa0;hpb=b07f3c123fff221edeffb4864bab7db88d0d1f4d;p=blank.git diff --git a/src/net/tcp.cpp b/src/net/tcp.cpp index f9e039b..6ecd2cd 100644 --- a/src/net/tcp.cpp +++ b/src/net/tcp.cpp @@ -1,6 +1,6 @@ #include "tcp.hpp" -#include "../app/init.hpp" +#include "../app/error.hpp" #include @@ -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)