diff --git a/include/mav/TCPClient.h b/include/mav/TCPClient.h index 5eacce2..69913e3 100644 --- a/include/mav/TCPClient.h +++ b/include/mav/TCPClient.h @@ -55,12 +55,19 @@ namespace mav { public: - TCPClient(const std::string& address, int port) { + TCPClient(const std::string& address, int port, int timeout = -1) { _socket = socket(AF_INET, SOCK_STREAM, 0); if (_socket < 0) { throw NetworkError("Could not create socket", errno); } + if (timeout > 0) { + struct timeval send_timeout; + send_timeout.tv_sec = 0; + send_timeout.tv_usec = timeout * 1000; // timeout is in ms + setsockopt(_socket, SOL_SOCKET, SO_SNDTIMEO, &send_timeout, sizeof(send_timeout)); + } + struct hostent *hp; hp = gethostbyname(address.c_str()); if (hp == nullptr) {